Dando sequência a série sobre ListView, esse que é um dos recursos mais importantes do Android, estamos chegando a parte 2.
Hoje vou mostrar como criar um ListView com opção de múltipla escolha, ele será parecido com o primeiro exemplo que eu mostrei no post Parte 1, será criada uma lista de Estados Brasileiros e será identificado dentro do sistema quando você clicar em qualquer um dos Estados e quando sair de sua Activity, o sistema apresentará todos os Estados que você deixou selecionado.
De posse dessa informação cabe a você criar situações reais para esse código.
Abaixo segue o fonte de exemplo:
package br.com.empresa; import android.app.ListActivity; 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 list3 extends ListActivity { private String[] lstEstados; ListView listView; public void onCreate(Bundle icicle) { super.onCreate(icicle); // Create an array of Strings, that will be put to our ListActivity lstEstados = new String[] {"São Paulo", "Rio de Janeiro", "Minas Gerais", "Rio Grande do Sul", "Santa Catarina", "Paraná", "Mato Grosso", "Amazonas"}; //Criar um ArrayAdapter, que vai fazer aparecer as Strings acima //em seu ListView do tipo que checked this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, lstEstados)); //cria o próprio listview listView = getListView(); //indica o modo de seleção dos itens, neste caso podemos selecionar quantos itens quisermos listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); //Pegar o item clicado Object o = this.getListAdapter().getItem(position); String lstrEstado = o.toString(); //Apresentar o item clicado Toast.makeText(this, "Você clicou no estado : " + lstrEstado, Toast.LENGTH_LONG).show(); } //Evento executado quando finalizar(clicar no botão voltar) a Intent @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); int len = listView.getCount(); String lstrEstadosSelecionados = ""; //Cria um array com os iten selecionados no listview SparseBooleanArray checked = listView.getCheckedItemPositions(); for (int i = 0; i < checked.size(); i++) { //pega os itens selecionados lstrEstadosSelecionados += lstEstados[checked.keyAt(i)] + ","; } Toast.makeText(this, "Você selecionou os estados : " + lstrEstadosSelecionados, Toast.LENGTH_LONG).show(); } }
Agora vamos ver algumas dicas para se ter um melhor entendimento sobre o código:
1.Como no exemplo da Parte 1, nesse também não preciso ainda de um layout em XML.
2.Foi implementado o método onDestroy, ele é executado toda vez que você o comando finish() em seu programa ou clicar no botão voltar de seu aparelho.
3.Utilizamos a classe SparseBolleanArray para criar um array com todos os itens selecionados em seu ListView.
Como resultado temos a seguinte imagem:
ListView |
Em breve estarei postando outras opções de ListView, por exemplo, opções de ícones, checkbox e etc.
Parte 1 : http://escoladeandroid.blogspot.com/2011/10/trabalhando-com-listview-parte-1.html
Parte 3 : http://escoladeandroid.blogspot.com/2011/12/trabalhando-com-listview-parte-3.html
Parte 4 : http://escoladeandroid.blogspot.com/2011/12/trabalhando-com-listview-parte-4.html
Parte 5 : http://escoladeandroid.blogspot.com/2011/12/trabalhando-com-listview-parte-5.html
Parte 6 : http://escoladeandroid.blogspot.com/2011/12/android-listview-parte-6.html
Parte 7 : http://escoladeandroid.blogspot.com.br/2012/03/android-listview-parte-7.html
Parte 8 : http://escoladeandroid.blogspot.com.br/2012/03/android-listview-parte-8.html
Trabalhando com Banco de Dados SQLite:
http://escoladeandroid.blogspot.com/2012/02/android-criando-uma-agenda-de-contatos.html
Desenvolvi o jogo Circus Puzzle Free ele é um quebra-cabeça e está publicado no Android Market, agradeço a todos que baixarem, jogarem e comentarem.
Desenv com qualidade!
2 comentários:
ai você deu um toast no nome do estado, mas como pegaria um id?
por exemplo
se tivesse associado 50=> são paulo, ou 33=> bahia. Quando Escolher o estado mostrar o id e não o nome
No meu tem o seguinte problema
eu seleciono por exemplo
[x]Brasil
e de pois desmarco
[ ]Brasil
E quando é executado o onDestroy, o Brasil aparece no Toast.É só comigo isso?
Postar um comentário