Android: ¿cómo puedo crear una pantalla de vista de lista con diferentes contenidos para cada fila

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

  •  09-10-2019
  •  | 
  •  

Pregunta

Estoy buscando para crear una pantalla de vista de lista similar a la pantalla de ajuste de sonido (en la aplicación construida en Configuración, ver imagen abajo), es decir, quiero algunas filas tengan casillas de verificación de texto +, otras filas para que el texto + "pop arriba" botones, algunas filas deben tener sólo texto, etc.

¿Cuál es la mejor manera de lograr esto?

text alt

¿Fue útil?

Solución

Esto no es una vista de lista, eso es un PreferenceActivity. Echar un vistazo a la clase PrefereceActivity

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

Si realmente quiere tener una visión diferente para cada fila en una vista de lista (que es muy válida), usted tiene que crear su propia clase que se extiende BaseAdapter. En el método getView(), simplemente devolver la vista que desee mostrar. Hay un montón de ejemplos en línea.

Otros consejos

Como se ha señalado por Falmarri, que no es un ListView sino un PreferenceActivity.

Si no puede trabajar con el PreferenceActivity, la forma más sencilla de hacer una lista de los diferentes elementos que se desplazará si fuera crecen la pantalla, es colocar una ScrollView alrededor de un LinearLayout. Puede leer más sobre esto aquí: http://developer.android.com/reference /android/widget/ScrollView.html

A continuación se muestra un ejemplo muy sencillo:

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

Ahora bien, esta lista no contiene suficientes elementos para desplazarse, pero si se mantiene la adición de más elementos a él comenzará a desplazarse tan pronto como se pone más grande que la pantalla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top