Plusieurs liste de choix avec vue personnalisée?

J'ai vu l'exemple com.exemple.android.les api.vue.List11 de ApiDemos. Dans cet exemple, chaque ligne prend le point de vue android.R.simple_list_item_multiple_choice. Chacun de ces points de vue a un TextView et un CheckBox.

Maintenant, je veux que chacun de vue pour avoir 2 TextViews et 1 CheckBox, un peu similaire à la List3 exemple. J'ai essayé de créer un fichier de mise en page personnalisée row.xml comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <CheckBox
        android:id="@+id/checkbox"
        android:layout_alignParentRight="true"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent" />
    <TextView
        android:id="@+id/text_name"
        android:textSize="13px"
        android:textStyle="bold"
        android:layout_toLeftOf="@id/checkbox"
        android:layout_alignParentLeft="true"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/text_phone"
        android:textSize="9px"
        android:layout_toLeftOf="@id/checkbox"
        android:layout_below="@id/text_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" /> 
</RelativeLayout>

Puis dans Activity's onCreate(), je fais comme ceci:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //Query the contacts
    mCursor = getContentResolver().query(Phones.CONTENT_URI, null, null, null, null);
    startManagingCursor(mCursor);

    ListAdapter adapter = new SimpleCursorAdapter(this,
            R.layout.row,
            mCursor, 
            new String[] { Phones.NAME, Phones.NUMBER}, 
            new int[] { R.id.text_name, R.id.text_phone });
    setListAdapter(adapter);
    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}

Le résultat ressemble à ce que je veux, mais il semble que la liste ne sais pas quel élément est sélectionné. Aussi, j'ai besoin de cliquer exactement sur le CheckBox. Dans le List11 exemple, j'ai seulement besoin de cliquer sur l'élément ligne.

Alors, que dois-je faire pour faire une liste à choix multiples avec mon affichage personnalisé pour chaque ligne? Merci beaucoup.

  • Avez-vous trouvez la réponse à celle-ci? un exemple peut-être? J'ai la même question 🙂 stackoverflow.com/questions/3858501/...
  • Alors, y avait-il une solution ? Je suis coincé sur le même problème.
InformationsquelleAutor Phil | 2010-04-16