Moja Android
aplikacja musi wypełnić ListView
dane z pliku ArrayList
.
Mam z tym problem. Czy ktoś może mi pomóc z kodem?
Musisz to zrobić za pomocą narzędzia, ArrayAdapter
które dostosuje twoją ArrayList (lub dowolną inną kolekcję) do twoich elementów w twoim układzie (ListView, Spinner itp.).
Oto, co mówi przewodnik dla programistów Androida :
A,
ListAdapter
która zarządzaListView
tablicą dowolnych obiektów. Domyślnie ta klasa oczekuje, że podany identyfikator zasobu odwołuje się do pojedynczego plikuTextView
. Jeśli chcesz użyć bardziej złożonego układu, użyj konstruktorów, które również przyjmują identyfikator pola. Ten identyfikator pola powinien odnosić się do aTextView
w większym zasobie układu.Jakkolwiek
TextView
istnieje odwołanie, zostanie on wypełniony przeztoString()
każdy obiekt w tablicy. Możesz dodawać listy lub tablice obiektów niestandardowych. ZastąptoString()
metodę obiektów, aby określić, jaki tekst będzie wyświetlany dla elementu na liście.Aby użyć czegoś innego niż
TextViews
na przykład do wyświetlania tablicyImageViews
lub aby niektóre dane oprócztoString()
wyników wypełniały widoki, nadpisz,getView(int, View, ViewGroup)
aby zwrócić żądany typ widoku.
Twój kod powinien wyglądać następująco:
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);
}
}
instruktaż
Sprawdź także interfejs ArrayAdapter :
źródło
Wypróbuj poniższą odpowiedź, aby wypełnić widok listy za pomocą ArrayList
źródło
źródło
Oto przykład, jak można zaimplementować widok listy:
źródło