Android ListView с Флажком: автоматически снятия флажка

У меня есть ListView с пользовательским BaseAdapter. Элементы списка содержат CheckBoxes, который должен представить свойство от базы данных.

Я использую CheckBox.setOnCheckedChangeListener с новым OnCheckedChangeListener для обнаружения изменений, таким образом, я могу изменить базу данных на основе текущего состояния CheckBox. Довольно простой материал до сих пор.

Однако при прокрутке далее вниз списка, ранее проверенный CheckBoxes неконтролируем. Я подозреваю, что это происходит, как только представления переработаны (я использую convertView/ViewHolder технику).

Как я могу остановить это? Что идет не так, как надо?

Заранее спасибо.


Править: Для создания вещей немного более ясными проблема состоит в том, что переработка представлений так или иначе называет OnCheckedChangeListener#onCheckedChanged (buttonView, isChecked) с isChecked == ложь.

6
задан benvd 3 May 2010 в 09:59
поделиться

1 ответ

По-видимому, проблема заключалась в том, что при получении флажка с помощью convertView.findViewById() слушатели onCheckedChangeListeners оставались нетронутыми, если представление было переработано. Вызов checkbox.setOnCheckedChangeListener(null) помог.

11
ответ дан 9 December 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: