Heim > Java > javaLernprogramm > Hauptteil

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

Patricia Arquette
Freigeben: 2024-11-01 07:16:30
Original
577 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage