2010-03-06 16 views
28

Ich bin neu in Android und ich denke, ich versuche etwas wirklich grundlegendes zu tun: Ich habe eine 5 Strings in meinem Array (sagen 'One', 'Two', .. .). Ich möchte diese 5 Zeichenfolgen zu meiner Listenansicht in meiner Listenaktivität hinzufügen.Android: Auffüllen einer Listview mit Array-Elemente

Meine Liste:

<ListView 
    android:id="@+id/android:list" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
</LinearLayout> 

Meine Liste Reihe:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
<TextView android:id="@+id/homeItemName" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1"/> 
</LinearLayout> 

Grundsätzlich möchte ich die Array Elemente in die Textview homeItemName binden. Ich könnte später weitere Elemente in meiner Zeile hinzufügen, sodass ich die Listenansicht nicht einfach an die Einträge binden kann.

Danke!

+1

Sie benötigen ein Grundwissen über Adapter und ArrayAdapter. Sie müssen wahrscheinlich eine dieser Klassen erweitern. – daliz

Antwort

31

Für Code, in diesem step-by-step tutorial

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES)); 
ListView lv = getListView(); 

einen kurzen Blick Es zeigt eine grundlegende Implementierung eines ArrayAdapter:

R.layout.list_item: ist das XML-Layout (list_item.xml), die für jede Zeile Ihrer Listview verwendet wird. LÄNDER ist das Array von Strings.

+1

Link ist tot :(. [Ist es] (https://developer.android.com/guide/topics/ui/layout/listview.html) die, auf die Sie hingewiesen haben? –

6

Sie können eine ArrayAdapter verwenden, um Ihre Daten zu binden. Da Sie der Ansicht zusätzliche Datenelemente hinzufügen möchten, geben Sie dem Adapter eine ArrayList (da ein Array eine feste Größe hat). Artikel sollten über die hinzugefügt werden und Ihre ArrayList wird automatisch aktualisiert. Ich habe ein Beispiel an http://www.box.net/shared/yduel9txya