2013-06-07 12 views
7

Ho provato a mostrare una semplice lista di controllo e ho bisogno di alcuni elementi da controllare.Android ListView :: setItemChecked non funziona

Ecco il mio codice

ArrayAdapter<Task> taskAdapter = new ArrayAdapter<Task>(this, android.R.layout.simple_list_item_checked, tasksList); this.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); this.getListView().setItemChecked(2, true); setListAdapter(taskAdapter);

<ListView 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

Ed ancora non funziona. L'implementazione dell'interfaccia Checkable non ha aiutato.

Qual è il trucco di questo ListView?

+1

Provare a impostare l'adattatore prima di 'setItemChecked()' – tbruyelle

risposta

14

È necessario impostare l'adattatore prima di impostare l'elemento come selezionabile.

ArrayAdapter<Task> taskAdapter = new ArrayAdapter<Task>(this, android.R.layout.simple_list_item_checked, tasksList); 
setListAdapter(taskAdapter);   
this.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
this.getListView().setItemChecked(2, true); 

L'adattatore contiene i dati memorizzati nel listview così punto 2 non esiste nella listview fino ad impostare l'adattatore.

Problemi correlati