ListView - Multipla escolha

Boa noite!

Aproveitando a listagem anterior, vamos transformar aquela listagem simples em uma listagem de múltipla escolha.
Para isso vamos fazer algumas pequenas alterações em nosso código.
package br.com.blogspot.androidandrekunde.listview;

import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

    private String[] lstFrutas;
    ListView lView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        lstFrutas = new String[] { "Abacate", "Abacaxi", "Banana", "Carambola",
          "Goiaba", "Jabuticaba", "Laranja", "Maçã", "Melancia", "Morango" };

        // Alterando o tipo da lista para simple_list_item_checked
        this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, lstFrutas));

        lView = getListView();

        // Ativando a seleção de mais de um item na lista
        lView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
 
        String selecionadas = "";

        // Este for vai percorrer toda a lista sempre
        // que houver um click
        for (int i = 0; i < lView.getCount(); i++) {

            // Esta condição verifica se o item está checado
            if (lView.isItemChecked(i) == true) {

             if (selecionadas.equals("")) {
                 selecionadas += lstFrutas[i];
             } else {
                    selecionadas += ", " + lstFrutas[i];
             }
            }
        }
   
        Toast.makeText(this, "Fruta(s) escolhida(s): " + selecionadas, Toast.LENGTH_SHORT).show();
    }
}


Bom, acho que este post ficou bem comentado no código já.
Até o próximo post e qualquer dúvida é só postar aí!

Sobre o autor

André Luís Batista Kunde
Técnico em Informática (2004), Bacharel em Administração com ênfase em Marketing (2009), buscando ser Engenheiro de Software, Trabalhando com software educacional e me aventurando pelo mundo da programação mobile.

Um comentário:

Copyright © 2013 Aprendendo Android and Blogger Themes.