Domanda

Sto cercando di creare uno schermo listview simile alla schermata delle impostazioni audio (in app costruito in Impostazioni, vedi immagine sotto), cioè voglio alcune righe di testo per avere + caselle di controllo, altre righe di testo per avere + "pop up" pulsanti, alcune righe dovrebbero avere solo il testo, ecc.

Qual è il modo migliore per ottenere questo risultato?

alt text

È stato utile?

Soluzione

Questo non è un controllo ListView, che è un PreferenceActivity. Date un'occhiata alla classe PrefereceActivity

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

Se si vuole veramente avere una visione diversa per ogni riga in una lista (che è molto valido), dovrete creare la propria classe che estende BaseAdapter. Nel metodo getView(), basta restituire la vista che si desidera mostrare. Ci sono un sacco di esempi in linea.

Altri suggerimenti

Come sottolineato da Falmarri, che non è un ListView ma un PreferenceActivity.

Se non è possibile lavorare con il PreferenceActivity, il modo più semplice per fare una lista di diversi elementi che scorrerà se fuori crescono lo schermo, è quello di mettere un ScrollView intorno a un LinearLayout. Si può leggere di più su di esso qui: http://developer.android.com/reference /android/widget/ScrollView.html

Di seguito è riportato un esempio molto semplice:

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

Ora, questo elenco non contiene elementi sufficienti a scorrimento, ma se si mantiene l'aggiunta di più elementi ad esso inizierà a scorrere non appena diventa più grande rispetto allo schermo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top