Android ListActivity – (Parte 2 – 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 ListView

 

1- Crie uma activity chamada ListViewCheck
2- Adicione um listView no arquivo de layout activity_list_view_check.xml. Adicione a propriedade choiceMode o valor de “multipleChoice”.

<ListView 
        android:choiceMode="multipleChoice" 
        android:id="@+id/lista3" 
        android:layout_above="@+id/buttons" 
        android:layout_alignParentTop="true" 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"/>

3- Adicione um LinearLayout com os botões btnMarcados e btnDescmarcados.

    <LinearLayout 
        android:id="@+id/buttons" 
        android:layout_alignParentBottom="true" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:orientation="horizontal">

        <Button 
            android:id="@+id/btnMarcados" 
            android:layout_height="wrap_content" 
            android:layout_weight="50" 
            android:layout_width="fill_parent" 
            android:onClick="btnMarcados_click" 
            android:text="Marcados"/>

        <Button 
            android:id="@+id/btnDesmarcados" 
            android:layout_height="wrap_content" 
            android:layout_weight="50" 
            android:layout_width="fill_parent" 
            android:onClick="btnDesmarcados_click" 
            android:text="Desmarcados"/>
    </LinearLayout>

4- Na classse ListViewCheck crie uma lista de estados e um listview

private String[] lstEstados;
ListView listView;

5- Na criação da activity do ListViewCheck

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view_check);
        //obtem a referencia do listview do arquivo de layout activity_list_view_check
        listView = (ListView) findViewById(R.id.listViewEstados);
        
        //Criar um array de String
        lstEstados = new String[] {"São Paulo", "Rio de Janeiro", "Minas Gerais", "Rio Grande do Sul", "Santa Catarina", "Paraná", "Mato Grosso", "Amazonas"};

        //Criar um ArrayAdapter do tipo String, que vai fazer aparecer as Strings acima
        //em seu ListView do tipo que checked
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, lstEstados);
        
        //Associar o adapter ao listview
        listView.setAdapter(adapter);

        //Cria o método que captura evento de clique no listview
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(getApplicationContext(), Integer.toString(i), Toast.LENGTH_LONG).show();
            }
        });

    }

6- Implemente o clique do botão btnmarcados

    
    //Este evento foi definido no arquivo de layout xml
    public void btnMarcados_click(View view){
        String lstrEstadosSelecionados = "";

        //Cria um array com os itens selecionados no listview
        SparseBooleanArray checked = listView.getCheckedItemPositions();

        for (int i = 0; i < checked.size(); i++){
            //pega os itens marcados
            lstrEstadosSelecionados += lstEstados[checked.keyAt(i)] + ",";
        }
        Toast.makeText(this, "Estados marcados : " + lstrEstadosSelecionados, Toast.LENGTH_LONG).show();
    }

7- Implemente o clique do botão btnDesmarcados

   //Este evento foi definido no arquivo de layout xml
    public void btnDesmarcados_click(View view){
        String lstrEstadosSelecionados = "";

        for (int i = 0; i < listView.getCount(); i++){
            //pega os itens desmarcados
            if (listView.isItemChecked(i) == false){
                lstrEstadosSelecionados += lstEstados[i] + ",";
            }
        }
        Toast.makeText(this, "Estados desmarcados : " + lstrEstadosSelecionados, Toast.LENGTH_LONG).show();
    }

8- Altere a classe MenuListActivity para que o clique do ListActivity chame a activity ListViewCheck

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

9- Compile e teste

Código Completo Layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_list_view_check"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.totemarcal.exemplolistactivity22.ListViewCheck">

    <ListView
        android:choiceMode="multipleChoice"
        android:id="@+id/listViewEstados"
        android:layout_above="@+id/buttons"
        android:layout_alignParentTop="true"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"/>

    <LinearLayout
        android:id="@+id/buttons"
        android:layout_alignParentBottom="true"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnMarcados"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:layout_width="fill_parent"
            android:onClick="btnMarcados_click"
            android:text="Marcados"/>

        <Button
            android:id="@+id/btnDesmarcados"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:layout_width="fill_parent"
            android:onClick="btnDesmarcados_click"
            android:text="Desmarcados"/>

    </LinearLayout>


</RelativeLayout>

Código Completo Java

package com.example.totemarcal.exemplolistactivity22;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.SparseBooleanArray;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class ListViewCheck extends AppCompatActivity {

    private String[] lstEstados;
    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view_check);
        //obtem a referencia do listview do arquivo de layout activity_list_view_check
        listView = (ListView) findViewById(R.id.listViewEstados);

        //Criar um array de String
        lstEstados = new String[] {"S�o Paulo", "Rio de Janeiro", "Minas Gerais", "Rio Grande do Sul", "Santa Catarina", "Paran�", "Mato Grosso", "Amazonas"};

        //Criar um ArrayAdapter do tipo String, que vai fazer aparecer as Strings acima
        //em seu ListView do tipo que checked
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, lstEstados);

        //Associar o adapter ao listview
        listView.setAdapter(adapter);
    }

    //Este evento foi definido no arquivo de layout xml
    public void btnMarcados_click(View view){
        String lstrEstadosSelecionados = "";

        //Cria um array com os itens selecionados no listview
        SparseBooleanArray checked = listView.getCheckedItemPositions();

        for (int i = 0; i < checked.size(); i++){
            //pega os itens marcados
            lstrEstadosSelecionados += lstEstados[checked.keyAt(i)] + ",";
        }
        Toast.makeText(this, "Estados marcados : " + lstrEstadosSelecionados, Toast.LENGTH_LONG).show();
    }

    //Este evento foi definido no arquivo de layout xml
    public void btnDesmarcados_click(View view){
        String lstrEstadosSelecionados = "";

        for (int i = 0; i < listView.getCount(); i++){
            //pega os itens desmarcados
            if (listView.isItemChecked(i) == false){
                lstrEstadosSelecionados += lstEstados[i] + ",";
            }
        }
        Toast.makeText(this, "Estados desmarcados : " + lstrEstadosSelecionados, Toast.LENGTH_LONG).show();
    }

}

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 *