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.
- Spinner con elementos de casilla de verificación, ¿es posible?
- Android checkable listview
- Cuándo usar CheckBox y cuando cambie
- ¿Cambiar el estado del CheckBox en el elemento de lista?
- CheckBox cambia el valor dos veces
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?
- 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?
- Cómo obtener todos los elementos seleccionados de un ListView?
- Android: casilla de verificación que se repite cada 10º en un listview
- No se puede usar la casilla de verificación en eclipse con el complemento de adt de Android
- ListView de Android enclicklistener no funciona con la casilla de verificación
- Lista personalizada con selección única CheckBox
- Cómo comprobar el CheckBox de ListView cuando se hace clic en el elemento?
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"
- Biblioteca de diálogo de material – evita el despedir / cerrar el diálogo en la función de función onPositive
- Path-App como menú redondo en Android