2011-03-14 11 views
10

Por algún motivo, setItemChecked no funciona. ¿Puede alguien ayudarme a arreglar ti?listview setItemChecked no funciona

String[] str = getResources().getStringArray(R.array.brush_type); 
sizeArrayAdapter = new ArrayAdapter<String>(this.getContext(), R.layout.drawing_list_item, str); 

listType = SIZE_LIST; 
listView.setAdapter(sizeArrayAdapter); 

// Populate the listView 
listView.setItemChecked(4,true); 

y este es el elemento de la lista:

<CheckedTextView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/drawingCheckedTextView" 
     android:layout_width="fill_parent" 
     android:layout_height="?android:attr/listPreferredItemHeight" 
     android:gravity="center_vertical" 
     android:checkMark="?android:attr/listChoiceIndicatorSingle" 
     android:background="@drawable/list_panel" 
     android:paddingLeft="6dip" 
     android:paddingRight="6dip"/> 

por favor me ayude.

+1

También debe implementar la interfaz de verificación. Vea mi respuesta aquí: http://stackoverflow.com/a/19997650/1361494 – moondroid

+0

'CheckedTextView' ya lo implementa, como se indica aquí: https://developer.android.com/reference/android/widget/CheckedTextView.html' Una extensión de TextView que admite la interfaz de Chequeable. –

Respuesta

15

El docs decir esto:

Establece el estado de activación de la posición especificada . Solo es válido si el modo de elección se ha establecido en CHOICE_MODE_SINGLE o CHOICE_MODE_MULTIPLE.

por lo que podría intentar:

list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

antes de llamar setItemChecked.

+0

Pensé ingenuamente que utilizar android.R.layout.simple_list_item_single_choice se encargaría de esto, pero supongo que mientras estoy aprendiendo debería ser obvio que establecer el diseño no configura el comportamiento real en absoluto? – Chinasaur

Cuestiones relacionadas