У меня есть ListView с пользовательским BaseAdapter. Элементы списка содержат CheckBoxes, который должен представить свойство от базы данных.
Я использую CheckBox.setOnCheckedChangeListener с новым OnCheckedChangeListener для обнаружения изменений, таким образом, я могу изменить базу данных на основе текущего состояния CheckBox. Довольно простой материал до сих пор.
Однако при прокрутке далее вниз списка, ранее проверенный CheckBoxes неконтролируем. Я подозреваю, что это происходит, как только представления переработаны (я использую convertView/ViewHolder технику).
Как я могу остановить это? Что идет не так, как надо?
Заранее спасибо.
Править: Для создания вещей немного более ясными проблема состоит в том, что переработка представлений так или иначе называет OnCheckedChangeListener#onCheckedChanged (buttonView, isChecked) с isChecked == ложь.
По-видимому, проблема заключалась в том, что при получении флажка с помощью convertView.findViewById() слушатели onCheckedChangeListeners оставались нетронутыми, если представление было переработано. Вызов checkbox.setOnCheckedChangeListener(null) помог.