2009-05-21 12 views
7

He completado un desde Cursor usando que inicia otra actividad cuando se hace clic en uno de los elementos de la lista. También estoy usando ViewBinder para hacer una transformación personalizada de los datos.Lista personalizada haciendo clic con casillas de verificación

Quiero agregar un CheckBox a cada fila en la lista, así que he cambiado la vista y he agregado un CheckBox con la gravedad a la derecha.

Agregar el CheckBox ha eliminado la capacidad de hacer clic en los elementos. El método onListItemClick que estaba anulando en ListActivity ya no se llama cuando presiona sobre un elemento de la lista. La eliminación de CheckBox corrige esto. ¿Por qué es esto?

Además, ¿cómo puedo configurar la lista para que continúe realizando mi función requerida si se hace clic en la parte principal del elemento de la lista pero tiene funcionalidad adicional cuando se marca CheckBox en el elemento? ¿Funcionará el establecimiento de un onCheckedChangedListener o se reutilizará la misma instancia de vista para cada elemento de la lista?

Respuesta

4

Parece SimpleCursorAdapter es demasiado primitivo para lo que quería lograr. He cambiado a implementar CursorAdapter y devolver una nueva vista usando LayoutInflater en mi implementación del método newView.

public View newView(Context context, Cursor cursor, ViewGroup parent) { 
    return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false); 
    } 

En Bindview Me continuación, establezca una costumbre OnClickListener a mi principal LinearLayout y luego otro OnCheckedChangeListener a la CheckBox.

Para que todo esto se ve bien que tuve que poner el fondo del LinearLayout 's para Android de MENUITEM dibujable:

android:background="@android:drawable/menuitem_background" 
+0

Hola se puede colocar más de este código? – Maxrunner

14

Como se explica here, el detector de clics sólo funciona si hay otro punto de vista es focusable. El establecimiento de su CheckBox a focusable="false" debe hacer el truco:

<CheckBox android:focusable="false" /> 
Cuestiones relacionadas