Heim  >  Artikel  >  Java  >  So passen Sie Zeilenelemente in einer Android-ListView an: Eine Schritt-für-Schritt-Anleitung?

So passen Sie Zeilenelemente in einer Android-ListView an: Eine Schritt-für-Schritt-Anleitung?

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 04:22:02987Durchsuche

How to Customize Row Items in an Android ListView: A Step-by-Step Guide?

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!

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