mcheckBox.setOnCheckedChangeListener в CursorAdapter - PullRequest
2 голосов
/ 18 декабря 2011

У меня есть 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 в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...