Meu Android
aplicativo precisa preencher o ListView
usando os dados de um ArrayList
.
Eu tenho problemas para fazer isso. Alguém pode me ajudar com o código?
Você precisa fazer isso por meio de um ArrayAdapter
que irá adaptar sua ArrayList (ou qualquer outra coleção) aos seus itens em seu layout (ListView, Spinner etc.).
Isso é o que diz o guia do desenvolvedor Android :
Um
ListAdapter
que gerencia umListView
apoiado por uma série de objetos arbitrários. Por padrão, essa classe espera que o id de recurso fornecido faça referência a um únicoTextView
. Se você quiser usar um layout mais complexo, use os construtores que também levam um id de campo. Esse campo id deve fazer referência aTextView
no recurso de layout maior.No entanto, o
TextView
é referenciado, ele será preenchido com otoString()
de cada objeto na matriz. Você pode adicionar listas ou matrizes de objetos personalizados. Substitua otoString()
método de seus objetos para determinar qual texto será exibido para o item na lista.Para usar algo diferente
TextViews
da exibição da matriz, por exemploImageViews
, ou para ter alguns dados além dostoString()
resultados preenchendo as visualizações, substituagetView(int, View, ViewGroup)
para retornar o tipo de visualização que você deseja.
Portanto, seu código deve ser semelhante a:
public class YourActivity extends Activity {
private ListView lv;
public void onCreate(Bundle saveInstanceState) {
setContentView(R.layout.your_layout);
lv = (ListView) findViewById(R.id.your_list_view_id);
// Instanciating an array list (you don't need to do this,
// you already have yours).
List<String> your_array_list = new ArrayList<String>();
your_array_list.add("foo");
your_array_list.add("bar");
// This is the array adapter, it takes the context of the activity as a
// first parameter, the type of list view as a second parameter and your
// array as a third parameter.
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
your_array_list );
lv.setAdapter(arrayAdapter);
}
}
tutorial
Procure também a interface ArrayAdapter :
fonte
Tente a resposta abaixo para preencher listview usando ArrayList
fonte
fonte
Aqui está um exemplo de como você pode implementar uma visualização de lista:
fonte