Android ListActivity – (Parte 3 – Custom ListView)

Na Aula 1 – Criando um Projeto Novo é mostrado como criar um projeto no Android Studio.

Para fazer download do Android Studio clique aqui.

List Activity com Custom ListView

 

1- Cria a classe Funcionario e reescreva o método toString()

public class Funcionario {
    private String nome;
    private int idade;
    private int imagem;
 
 
    public Funcionario() {
    }
 
    public Funcionario(String nome, int idade, int imagem) {
        super();
        this.nome = nome;
        this.idade = idade;
        this.imagem = imagem;
    }
 
    public String getNome() {
        return nome;
    }
 
    public void setNome(String nome) {
        this.nome = nome;
    }
 
    public int getIdade() {
        return idade;
    }
 
    public void setIdade(int idade) {
        this.idade = idade;
    }
 
    public int getImagem() {
        return imagem;
    }
 
    public void setImagem(int imagem) {
        this.imagem = imagem;
    }  
 
    @Override
    public String toString() {
        return nome;
    }
}

2- Crie e classe ListFuncionarioAdapter que herda da classe ArrayAdapter. Implemente o método getView para transferir as informações do objeto Funcinário parao listView de Funcionario.

public class ListFuncionarioAdapter extends ArrayAdapter<Funcionario> {
	 
    private Context context;
    private List<Funcionario> funcionarios = null;
 
    public ListFuncionarioAdapter(Context context,  List<Funcionario> funcionarios) {
        super(context,0, funcionarios);
        this.funcionarios = funcionarios;
        this.context = context;
    }
 
    @Override
    public View getView(int position, View view, ViewGroup parent) {
        Funcionario func = funcionarios.get(position);
         
        if(view == null)
            view = LayoutInflater.from(context).inflate(R.layout.item_list_func, null);
 
        ImageView imageViewFunc = (ImageView) view.findViewById(R.id.image_view_func);
        imageViewFunc.setImageResource(func.getImagem());
         
        TextView textViewNomeFunc = (TextView) view.findViewById(R.id.text_view_nome_func);
        textViewNomeFunc.setText(func.getNome());
         
        TextView textViewIdadeFunc = (TextView)view.findViewById(R.id.text_view_idade_func);
        String textoIdade = String.valueOf(func.getIdade()) + " anos";
        textViewIdadeFunc.setText(textoIdade);
 
        return view;
    }
}

3- Cire um activity chamado ListActivityFuncionario que utilizará o ListFuncionarioAdapter



public class ListActivityFuncionario extends ListActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lista_pessoas);
        
        List<Funcionario> list_func = gerarFuncionarios();
        final ListFuncionarioAdapter funcionariosAdapter = new ListFuncionarioAdapter(this, list_func);
        setListAdapter(funcionariosAdapter);

    }

        
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        Object o = this.getListAdapter().getItem(position);
        String item = o.toString();
        Toast.makeText(this, "Voc� selecionou: " + item, Toast.LENGTH_LONG).show();
    }

    private List<Funcionario> gerarFuncionarios() {
        List<Funcionario> funcionarios = new ArrayList<Funcionario>();
        funcionarios.add(criarFuncionarios("Shane", 23, R.drawable.pessoa1));
        funcionarios.add(criarFuncionarios("Hershel", 23, R.drawable.pessoa2));
        funcionarios.add(criarFuncionarios("Glen", 23, R.drawable.pessoa3));
         
        return funcionarios;
    }

     
    private Funcionario criarFuncionarios(String nome, int idade, int image) {
        Funcionario func = new Funcionario(nome, idade, image);
        return func;
        
        
    }
}

4- Crie um arquivo de layout xml item_list_func que será a representação de cada item do ListFuncionario

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/black"
    android:orientation="vertical" >
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="5dp"
        android:background="@android:color/white"
        android:orientation="horizontal" >
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical" >
 
            <ImageView
                android:id="@+id/image_view_func"
                android:layout_width="120dp"
                android:layout_height="120dp"
                android:adjustViewBounds="true" />
        </LinearLayout>
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical" >
 
            <TextView
                android:id="@+id/text_view_nome_func"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="32sp" />
 
            <TextView
                android:id="@+id/text_view_idade_func"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="16sp" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

5- Implemente o arquivo de layout activity_list_funcionario.xml para que suporte o ListActivity

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

6- Altere a classe MenuListActivity para que chame a activity ListActivityFuncionario no clique da opção 2

startActivity(new Intent(this, ListActivityFuncionario.class));

7- Compile e teste

Deixe uma resposta

Specify Google Client ID and Secret in Super Socializer > Social Login section in admin panel for Google Login to work

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *