Lista personalizada haciendo clic con las casillas de verificación

He poblado una ListActivity desde un Cursor utilizando SimpleCursorAdapter que inicia otra actividad cuando se ha hecho clic en uno de los elementos de la lista. También estoy usando ViewBinder para hacer alguna transformación personalizada de los datos.

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

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

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

Como se explica aquí , el oyente de clics sólo funciona si no se puede focusable ninguna otra vista. Configurar su CheckBox a focusable="false" debería hacer el truco:

 <CheckBox android:focusable="false" /> 

Parece que 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 I, a continuación, establecer un personalizado OnClickListener a mi principal LinearLayout y, a continuación, otro OnCheckedChangeListener a la CheckBox .

Para que todo esto parezca correcto tuve que configurar el fondo de LinearLayout para el menuitem de android dibujable:

 android:background="@android:drawable/menuitem_background" 
  • Android CheckBox - Eliminación de un setOnCheckedChangeListener anterior
  • Android 5.0 - las casillas de verificación de las preferencias no son visibles
  • ListView de Android enclicklistener no funciona con la casilla de verificación
  • Android checkable listview
  • Cómo agregar EditText en listview y obtener su valor dinámicamente en todas las filas?
  • NotifyDataSetChanged para varias casillas de verificación
  • Lista personalizada con selección única CheckBox
  • Proyecto de ejemplo para seleccionar varios contactos
  • ¿Cómo puedo cambiar el tamaño de un título CheckBox o hacer que envuelva en un xml PreferenceScreen?
  • ListView de Android con casilla de verificación: desactiva automáticamente
  • Android Checkbox listview seleccionar todo (desactivar / activar)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.