Meine Android
App muss die ListView
mit den Daten aus einem füllen ArrayList
.
Ich habe Probleme damit. Kann mir bitte jemand mit dem Code helfen?
Sie müssen dies über eine tun, ArrayAdapter
die Ihre ArrayList (oder eine andere Sammlung) an Ihre Elemente in Ihrem Layout (ListView, Spinner usw.) anpasst.
Dies ist, was der Android-Entwicklerleitfaden sagt:
A
ListAdapter
, das einListView
von einem Array beliebiger Objekte unterstütztes verwaltet. Standardmäßig erwartet diese Klasse, dass die angegebene Ressourcen-ID auf eine einzelne verweistTextView
. Wenn Sie ein komplexeres Layout verwenden möchten, verwenden Sie die Konstruktoren, die auch eine Feld-ID verwenden. Diese Feld-ID sollte auf aTextView
in der größeren Layoutressource verweisen .Unabhängig davon, auf
TextView
was verwiesen wird, wird es mittoString()
jedem Objekt im Array gefüllt . Sie können Listen oder Arrays von benutzerdefinierten Objekten hinzufügen. Überschreiben Sie dietoString()
Methode Ihrer Objekte, um zu bestimmen, welcher Text für das Element in der Liste angezeigt wird.Wenn Sie beispielsweise etwas anderes als
TextViews
die Array-Anzeige verwendenImageViews
oder einige Daten neben dentoString()
Ergebnissen in die Ansichten einfügengetView(int, View, ViewGroup)
möchten , überschreiben Sie diese , um den gewünschten Ansichtstyp zurückzugeben.
Ihr Code sollte also folgendermaßen aussehen:
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);
}
}
Lernprogramm
Suchen Sie auch nach der ArrayAdapter- Schnittstelle:
quelle
Versuchen Sie die folgende Antwort, um die Listenansicht mit ArrayList zu füllen
quelle
quelle
Hier ist ein Beispiel, wie Sie eine Listenansicht implementieren können:
quelle