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

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

Utilizo CheckBox.setOnCheckedChangeListener con un nuevo OnCheckedChangeListener para detectar cambios, así que puedo cambiar la base de datos basada en el estado actual del CheckBox. Cosas bastante sencillas hasta ahora.

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

¿Cómo puedo detener esto? ¿Qué sucede mal?

Gracias por adelantado.


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

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

  • Picasso carga imágenes con una imagen errónea en un adaptador de lista
  • cuando listview desplazarse ese tiempo edittext establecer el valor predeterminado
  • Android, SlidingPaneLayout y listView
  • Android: Múltiples temporizadores de cuenta atrás simultáneos en un ListView
  • Mejores prácticas que combinan vistas de lista y no de lista, como el Mercado
  • ListView ya no reacciona a onclick después de una llamada a setSelection ()
  • Android: FastScrolling SectionIndexer getSections () se llama sólo una vez
  • Cómo deshabilitar el menú contextual para determinados elementos ListView en Android
  • Android: la imagen en el listview parpadea mientras llama a notifyDataSetChanged en algunos dispositivos
  • ¿Cómo usar el titular de la vista si el contenido personalizado de la fila listview es dinámico?
  • Altura dinámica para la fila ListView en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.