android listview checkbox listadapter

Android ListView con casilla de verificación: desmarca automáticamente



checkbox listadapter (1)

Aparentemente, el problema era que, al obtener la casilla usando convertView.findViewById (), los onCheckedChangeListeners seguían intactos si la vista se reciclaba. Llamar a checkbox.setOnCheckedChangeListener (null) hizo el truco.

Tengo un ListView con un BaseAdapter personalizado. Los elementos de la lista contienen CheckBoxes que necesitan representar una propiedad de una base de datos.

Uso CheckBox.setOnCheckedChangeListener con un nuevo OnCheckedChangeListener para detectar cambios, por lo que puedo cambiar la base de datos según el estado actual de CheckBox. Bastante sencillo hasta ahora.

Sin embargo, al desplazarse hacia abajo en la lista, CheckBoxes previamente marcados se desactivan. Sospecho que esto sucede tan pronto como las vistas se reciclan (estoy usando la técnica convertView / ViewHolder).

¿Cómo puedo detener esto? ¿Qué está mal?

Gracias por adelantado.

Editar: Para aclarar un poco las cosas, el problema es que el reciclaje de vistas llama de alguna manera a OnCheckedChangeListener # onCheckedChanged (buttonView, isChecked) con isChecked == false.