У меня есть ListView, который заполняется с помощью пользовательского CursorAdapter.В BindView у меня есть следующий код:
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();
}
});
Однако, когда один из флажков в списке установлен, кажется, что код, который выполняется, применяется к позиции курсора на последний элемент всписок.Таким образом, в списке из 4 элементов, где
c.getInt (c.getColumnIndex (ToDoDBAdapter.KEY_ID))
должен возвращать 1, 2, 3, 4 соответственнопроверка любого из 4 полей дает значение 4. Кто-нибудь знает, почему это так?
Другими словами, onCheckedChangedListener одинаков для всех CheckBox в списке.