Android CheckBox - 删除以前的 setOnCheckedChangeListener

标签 android checkbox android-cursoradapter

我有一个应用程序,它使用我自定义的 CursorAdapter 显示 ListView。在我的自定义 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 回收我的 View 时,onCheckedChangeListener 仍然处于 Activity 状态,因此对 setChecked() 的调用导致监听器中的代码运行。我想知道如何在我包含的代码运行之前使 onCheckedChangedListener 无效。

最佳答案

可以调用mcheckBox.setOnCheckedChangeListener(null);如果是在onCheckedChangeListener内部完成,需要声明mCheckBox 最终

关于Android CheckBox - 删除以前的 setOnCheckedChangeListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549214/

相关文章:

android - 我如何在Android中绘制带有渐变的进度环?

javascript - 谷歌可视化表中的复选框

android - 更改自定义 CursorAdapter 的行布局

android - 我正在尝试提升 cardview 的角落

android - OSM - 使用自定义图标显示当前位置

javascript - Dojo:以编程方式设置复选框标签

ruby-on-rails - 取消选中复选框仅不适用于 rspec/capybara 测试

android - 使用 CursorLoader 和 LoaderManager 从 Android 应用程序中检索图像

android - 在 CursorAdapter 中加入多条记录

java - RecyclerView 不显示任何数据