У меня есть приложение, которое отображает ListView с помощью настроенного мной CursorAdapter. В моем собственном CursorAdapter.bindView у меня есть объект CheckBox, в котором я устанавливаю проверенное значение (на основе столбца на курсоре) и устанавливаю clickListener. Вот мой код:
CheckBox mCheckBox = (CheckBox) view.findViewById(R.id.list_done);
mCheckBox.setChecked(isDone);
mCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
AW.getDB().updateTask(c.getInt(c.getColumnIndex(ToDoDBAdapter.KEY_ID)), isChecked);
TD.displayTasks();
}
});
Единственная проблема состоит в том, что когда Android перезагружает мои представления, onCheckedChangeListener все еще активен, и, таким образом, вызов setChecked () вызывает выполнение кода в слушателе. Я хотел бы знать, как сделать недействительными данные onCheckedChangedListener непосредственно перед запуском кода, который я включил.