Android: как создать экран просмотра списка с различным содержанием для каждой строки

Я пытаюсь создать экран просмотра списка, аналогичный экрану "Настройка звука" (во встроенном приложении "Настройки", см. Изображение ниже), т.е. я хочу, чтобы в некоторых строках были текст + флажки, в других строках - текст + "всплывающие" кнопки некоторые строки должны иметь только текст и т. д.

Каков наилучший способ сделать это?

альтернативный текст

2 ответа

Решение

Это не просмотр списка, это PreferenceActivity, Взгляните на класс PrefereceActivity

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

Если вы действительно хотите иметь разные представления для каждой строки в представлении списка (что очень правильно), вам придется создать свой собственный класс, который расширяет BaseAdapter, в getView() метод, просто верните вид, который вы хотите показать. Есть много примеров в Интернете.

Как указывает Фальмарри, это не ListView но PreferenceActivity,

Если вы не можете работать с PreferenceActivityСамый простой способ составить список различных элементов, которые будут прокручиваться, если они перерастут экран, - это разместить ScrollView вокруг LinearLayout, Вы можете прочитать больше об этом здесь: http://developer.android.com/reference/android/widget/ScrollView.html

Ниже приведен очень простой пример:

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

Теперь этот список не содержит достаточно элементов для прокрутки, но если вы продолжите добавлять к нему больше элементов, он начнет прокручиваться, как только он станет больше экрана.

Другие вопросы по тегам