Android ListView с флажком: автоматически снимает флажки - PullRequest
6 голосов
/ 03 мая 2010

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

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

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

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

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


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

1 Ответ

10 голосов
/ 03 мая 2010

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

...