Heim  >  Artikel  >  Java  >  Wie erstelle ich ein benutzerdefiniertes Zeilenlayout mit einer statischen Kopfzeile und dynamischem Text in Android ListView?

Wie erstelle ich ein benutzerdefiniertes Zeilenlayout mit einer statischen Kopfzeile und dynamischem Text in Android ListView?

DDD
DDDOriginal
2024-11-02 00:41:31399Durchsuche

How to Create a Custom Row Layout with a Static Header and Dynamic Text in Android ListView?

Benutzerdefiniertes Android-Zeilenlayout für ListView

Beim Umgang mit einem ListView kann es erforderlich sein, das Layout seiner Zeilen anzupassen. In diesem Fall besteht das Ziel darin, Zeilen zu entwerfen, die aus zwei Komponenten bestehen: einem statischen „HEADER“ und einem „Text“, der sich dynamisch ändert.

Lösung

Zu erreichen Dazu wird in der Datei row.xml ein benutzerdefiniertes Zeilenlayout definiert. Dieses Layout enthält die beiden erforderlichen Elemente:

<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:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
</LinearLayout></code>

Das Hauptaktivitätslayout (main.xml) wird aktualisiert, um die ListView einzuschließen, und der benutzerdefinierte Adapter (yourAdapter) wird implementiert:

<code class="xml"><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"
    />
</LinearLayout></code>
<code class="java">public class yourAdapter extends BaseAdapter {

    Context context;
    String[] data;
    private static LayoutInflater inflater = null;

    // ... (Constructor and methods as per the provided answer)
}</code>

Schließlich wird der Adapter in der Java-Aktivitätsklasse (StackActivity) auf die ListView eingestellt:

<code class="java">public class StackActivity extends Activity {

    ListView listview;

    // ... (Activity methods as per the provided answer)

    listview.setAdapter(new yourAdapter(this, new String[] { "data1", "data2" }));
}</code>

Das Ergebnis ist eine ListView mit benutzerdefinierten Zeilen, die den statischen HEADER und den dynamischen Textinhalt anzeigen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein benutzerdefiniertes Zeilenlayout mit einer statischen Kopfzeile und dynamischem Text in Android ListView?. 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