Android: Wie erstelle ich einen Listview-Bildschirm mit unterschiedlichen Inhalten für jede Zeile

StackOverflow https://stackoverflow.com/questions/3962722

  •  09-10-2019
  •  | 
  •  

Frage

Ich suche eine Listenansicht Bildschirm ähnlich den Klangeinstellung Bildschirm (im eingebauten App Einstellungen, siehe Bild unten) zu erzeugen, dh ich mag einige Zeilen Text + Kontrollkästchen, andere Zeilen müssen Text + „pop haben up“Tasten, sollten einige Zeilen Text nur etc haben.

Was ist der beste Weg, dies zu erreichen?

alt text

War es hilfreich?

Lösung

Das ist keine Listenansicht, dass ein PreferenceActivity ist. Werfen Sie einen Blick auf die PrefereceActivity Klasse

http://developer.android.com/reference/android/preference/ PreferenceActivity.html

Wenn Sie wirklich eine andere Ansicht für jede Zeile in einer Listenansicht haben wollen (das ist sehr gültig ist), müssen Sie Ihre eigene Klasse erstellen, die BaseAdapter erstreckt. Im getView() Verfahren kehren nur die Ansicht, die Sie anzeigen möchten. Es gibt viele Beispiele online.

Andere Tipps

Wie bereits von Falmarri heraus, dass kein ListView ist aber ein PreferenceActivity.

Wenn Sie nicht mit dem PreferenceActivity arbeiten können, der einfachste Weg, um eine Liste der verschiedenen Elemente zu machen, bewegen, wenn sie den Bildschirm heraus wachsen, ist eine ScrollView um einen LinearLayout zu platzieren. Sie können mehr darüber lesen Sie hier: http://developer.android.com/reference /android/widget/ScrollView.html

Im Folgenden ist ein sehr einfaches Beispiel:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TextView
                android:text="Some text label here" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            />
            <Button
                android:text="A button to click"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
            />
        </RelativeLayout>
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="Perhaps an input field here"
        />
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TextView
                android:text="Some more text, and a check box" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            />
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
            />
        </RelativeLayout>
    </LinearLayout>
</ScrollView>

Nun ist diese Liste enthält nicht genügend Elemente zu blättern, aber wenn Sie halten mehr Elemente ihm hinzufügen wird es sofort aufnehmen blättern, wie es wird größer als der Bildschirm ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top