[Resolvido] Binding ArrayList com ListView

3 respostas
claudneto

Galera…preciso jogar um ArrayList em um ListView…

Como fazer isso???

3 Respostas

Marky.Vasconcelos

Crie seu ArrayAdapter(ou diretamente de BaseAdapter) e retorna as Views certas no getView

claudneto

Ahhh…conseguii! Vlw pela dica, Marky!

F

Preciso fazer uma busca na listView, vi esse código: [url]http://escoladeandroid.blogspot.com.br/2011/12/trabalhando-com-listview-parte-4.html[/url]

public class consulta extends Activity 
{
    private ListView lv;
    private EditText et;
    private String[] lstEstados;
    private ArrayList<String> lstEstados_Encontrados = new ArrayList<String>();

@Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.consulta);
 
        lv = (ListView) findViewById(R.id.lvEstados);
        et = (EditText) findViewById(R.id.etProcurar);
   
        lstEstados = new String[] {"São Paulo", "Rio de Janeiro", "Minas Gerais", "Rio Grande do Sul",
                    "Santa Catarina", "Paraná", "Mato Grosso", "Amazonas"};
   
        //Carrega o listview com todos os itens
        lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lstEstados));
        CarregarEncontrados();
 
        //Adiciona um TextWatcher ao TextView cujos métodos são chamados sempre 
        //que este TextView sofra alterações.

et.addTextChangedListener(new TextWatcher()
        {
            public void afterTextChanged(Editable s)
            {
                // Abstract Method of TextWatcher Interface.
            }
    
            public void beforeTextChanged(CharSequence s, int start, int count, int after)
            {
                // Abstract Method of TextWatcher Interface.
            }
    
            //Evento acionado quando o usuário teclar algo
            //na caixa de texto "Procurar"
            public void onTextChanged(CharSequence s, int start, int before, int count)
            {
                CarregarEncontrados();
     
                //Carrega o listview com os itens encontrados
                lv.setAdapter(new ArrayAdapter<String>(consulta.this, android.R.layout.simple_list_item_1, lstEstados_Encontrados));
            }
        });

Nesse código os dados vem de um array. Já tenho a lista preenchida com dados vindo do SQLite. Como adaptar o código acima para utilizar os dados do banco? Preencho a lista assim:

private void carregarLista(){
        db.open();
    	Cursor clientes = db.getTodosClientes();
        clientes.moveToFirst();
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.two_line_list_item, clientes, new String[] {DbAdapter.KEY_NOME, DbAdapter.KEY_CELULAR}, new int[] {android.R.id.text1, android.R.id.text2});
		setListAdapter(adapter);
    }
Criado 31 de janeiro de 2012
Ultima resposta 11 de ago. de 2012
Respostas 3
Participantes 3