Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 已检查布尔值,但不随foreach更改_Android_Listview_Kotlin_Android Listview - Fatal编程技术网

Android 已检查布尔值,但不随foreach更改

Android 已检查布尔值,但不随foreach更改,android,listview,kotlin,android-listview,Android,Listview,Kotlin,Android Listview,因此,我试图用一个名为“全选”的按钮从列表中选择所有项目,现在我按下按钮,我要做的是将所有字段的isChecked变量更新为true,然后我notifysetDataChange()再次绘制并检查所有项目,我还使用一个界面向我的UI通知当前成员列表,并选择所有成员 现在,当我按下我的按钮 binding.btnSelectAll.setOnClickListener { attendanceAdapter.checkAllFields() } 并在适配器

因此,我试图用一个名为“全选”的按钮从列表中选择所有项目,现在我按下按钮,我要做的是将所有字段的isChecked变量更新为true,然后我
notifysetDataChange()
再次绘制并检查所有项目,我还使用一个界面向我的UI通知当前成员列表,并选择所有成员

现在,当我按下我的按钮

 binding.btnSelectAll.setOnClickListener {
           attendanceAdapter.checkAllFields()
        }
并在适配器中更新我的列表

 fun checkAllFields(){
        memberList.forEach { it.isChecked == true }
        itemClickListener.onAllSelectedMembers(memberList)
        notifyDataSetChanged()
    }

所有成员列表isChecked值保持为false并且没有更改,我真的不知道为什么没有更改,成员的数据类有一个可变isChecked变量,可以重新签名,成员列表也是一个可变列表,可以更改,为什么会发生这种情况?

在您为
checkAllFields()
共享的代码片段中,您正在执行
布尔运算。您应该改为执行赋值操作。
行附近:
memberList.forEach{it.isChecked=true}

因此,您的代码应该如下所示:

fun checkAllFields(){
        memberList.forEach { it.isChecked = true }
        itemClickListener.onAllSelectedMembers(memberList)
        notifyDataSetChanged()
    }

哎呀,我忘了