sexta-feira, 18 de novembro de 2011

Lista usando array de strings

Neste artigo, demonstrarei como fiz para criar uma lista de strings numa activity usando a superclasse ListActivity e o adaptador ArrayAdapter, e implementar um Listener nos itens.
Segue o código da activity sem o listener:
  1. package br.android;

  2. import android.app.Activity;
  3. import android.app.ListActivity;
  4. import android.os.Bundle;
  5. import android.widget.ArrayAdapter;

  6. public class ListaArray extends ListActivity {
  7.     public void onCreate(Bundle icicle) {
  8.         super.onCreate(icicle);
  9.        String itens[] = {"Item1""Item2""Item3"};
  10.        
  11.        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, itens);
  12.        
  13.        setListAdapter(arrayAdapter);
  14. }
  15.    
  16. }


Primeiro se declara o array de Strings que serão usados na lista, depois construir o ArrayAdapter com os seguintes parâmetros em ordem: contexto, layout, array.
Por fim, se usa o método setListAdapter passando como parâmetro o ArrayAdapter, que automaticamente cria uma view.
O layout usado é padrão da classe android.R.
ScreenShot:
       (Clique para ampliar)
Agora o código com o listener implementado, com exibição de mensagem como consequência:


  1. package br.livro.android.cap3;
  2.  
  3.      
  4.  
  5.     import android.app.Activity;
  6.     import android.app.ListActivity;
  7.     import android.os.Bundle;
  8. import android.view.View;
  9. import android.widget.ArrayAdapter;
  10. import android.widget.ListView;
  11. import android.widget.Toast;
  12.  
  13.     public class ListaArray extends ListActivity {
  14.         public void onCreate(Bundle icicle) {
  15.             super.onCreate(icicle);
  16.            
  17.            String itens[] = {"Item1""Item2""Item3"};
  18.  
  19.            ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, itens);
  20.  
  21.            setListAdapter(arrayAdapter);
  22.  
  23.     }
  24.         protected void onListItemClick(ListView l, View v, int position, long id){
  25.             super.onListItemClick(l,v,position,id);
  26.             Object o = this.getListAdapter().getItem(position);
  27.             String item = o.toString();
  28.             Toast.makeText(this"Você selecionou: " + item, Toast.LENGTH_SHORT).show();
  29.         }
  30.     }



Se usa o método da superclasse para recuperar a posição(index) do item.
Em seguida cria-se um objeto com essa posição usando os métodos getListAdapter().getItem(position).
Por fim basta transformar o objeto em String e usar o método Toast.makeText(contexto, texto, duração).
ScreenShot:
(Clique para ampliar)

Nenhum comentário:

Postar um comentário