Heim  >  Artikel  >  Java  >  Wie erstelle ich eine ListView mit einer statischen Kopfzeile und dynamischem Text in jeder Zeile?

Wie erstelle ich eine ListView mit einer statischen Kopfzeile und dynamischem Text in jeder Zeile?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 07:16:30499Durchsuche

How to Create a ListView with a Static Header and Dynamic Text in Each Row?

Anpassen des ListView-Zeilenlayouts mit statischer Kopfzeile und dynamischem Text

Diese Frage betrifft die Anpassung von ListView-Zeilenlayouts, um eine statische Kopfzeile und dynamisch einzuschließen Text ändern. Der Anfragende hat mithilfe eines ArrayAdapters eine ListView mit Daten erstellt, die aus einem String-Array aufgefüllt wurden, stößt jedoch auf Schwierigkeiten bei der Anzeige des gewünschten Layoutformats.

Lösung:

Zu erreichen Führen Sie für das angegebene Layout die folgenden Schritte aus:

  1. Erstellen Sie ein benutzerdefiniertes Zeilenlayout (row.xml) mit zwei TextViews: eine für den statischen Header und eine andere für den dynamischen Text.
  2. Definieren das RelativeLayout für das XML-Layout der Hauptaktivität, um die ListView einzuschließen.
  3. Implementieren Sie einen benutzerdefinierten Adapter, der das Zeilenlayout erweitert und die Daten entsprechend festlegt.

Die Adapterklasse enthält Methoden wie getCount (), getItem(), getItemId() und getView(), die die Datenverarbeitung und die Ansichtserstellung übernehmen.

  1. Setzen Sie in der onCreate()-Methode der Aktivität den Adapter auf ListView.

Hier ist eine Beispielimplementierung:

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>

main.xml:

<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>

Benutzerdefinierter Adapter:

<code class="java">class yourAdapter extends BaseAdapter {

    ...

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
        if (vi == null)
            vi = inflater.inflate(R.layout.row, null);
        TextView text = (TextView) vi.findViewById(R.id.text);
        text.setText(data[position]);
        return vi;
    }
}</code>

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine ListView mit einer statischen Kopfzeile und dynamischem Text in jeder Zeile?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn