Erstellen benutzerdefinierter Zeilenelemente für eine Android-ListView: Eine detaillierte Anleitung
In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Zeilenelemente erstellen für eine ListView in einer Android-Anwendung.
Die Herausforderung
Wir haben eine ListView, die Zeilen mit dem folgenden Layout erfordert:
HEADER Text
Die „HEADER“-Text bleibt statisch, während sich der „Text“-Inhalt dynamisch ändert.
Der anfängliche Ansatz
Zunächst haben wir versucht, ein String-Array zu füllen und es an ein zu übergeben ArrayAdapter und dessen Festlegung bei jeder Datenänderung:
data_array = populateString(); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, data_array); listView.setAdapter(adapter);
Dieser Ansatz lieferte jedoch nicht das gewünschte Ergebnis, da das vorhandene Layout die Daten nicht im angegebenen Format anzeigen konnte.
Das benutzerdefinierte Zeilenlayout
Um diese Einschränkung zu überwinden, erstellen wir ein benutzerdefiniertes Layout für die Zeilenelemente:
row.xml:
<code class="xml"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Header"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text"/> </LinearLayout></code>
Das Haupt-XML-Layout
Als nächstes passen Sie das Haupt-XML-Layout an, um die ListView einzuschließen:
<code class="xml"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView> </LinearLayout></code>
Der Adapter
Wir definieren nun den Adapter:
<code class="java">class yourAdapter extends BaseAdapter { // ... (the adapter code) ... @Override public View getView(int position, View convertView, ViewGroup parent) { // ... (customizing view) ... TextView text = (TextView) vi.findViewById(R.id.text); text.setText(data[position]); return vi; } }</code>
Die Java-Aktivität
Zuletzt in der Java-Aktivität:
<code class="java">public class StackActivity extends Activity { // ... (the activity code) ... @Override public void onCreate(Bundle savedInstanceState) { // ... (setting up listview) ... listview.setAdapter(new yourAdapter(this, new String[] { "data1", "data2" })); } }</code>
Indem Sie diese Schritte befolgen, können Sie benutzerdefinierte Zeilenelemente für eine ListView erstellen, was mehr Flexibilität und Anpassung bei der Darstellung Ihrer Daten ermöglicht.
Das obige ist der detaillierte Inhalt vonSo passen Sie Zeilenelemente in einer Android-ListView an: Eine Schritt-für-Schritt-Anleitung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!