CursorAdapter中的mcheckBox.setOnCheckedChangeListener

时间:2011-12-18 02:17:39

标签: android listview checkbox android-cursoradapter

我有一个使用自定义CursorAdapter填充的ListView。在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都是相同的。

0 个答案:

没有答案