布尔值 isChecked 不随 foreach 改变

Boolean value isChecked not changing with foreach

所以我尝试 select 列表中的所有项目,带有一个名为 select all 的按钮,现在我按下按钮,我所做的是更新 isChecked 所有字段的变量都为真,之后我 notifysetDataChange() 所以所有项目都被重新绘制并为我检查,我还使用一个接口通知我 UI包含所有成员的当前成员列表 selected

现在,当我按下按钮时

 binding.btnSelectAll.setOnClickListener {
           attendanceAdapter.checkAllFields()
        }

并在适配器中更新我的列表

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

All memberList isChecked 值保持为 false 并且没有改变,我真的不知道为什么没有改变,数据 class of Members 有一个可以重新分配的可变 isChecked 变量,而 memberList 也是一个可以更改的可变列表,为什么会这样?

在您为 checkAllFields() 分享的代码片段中,您正在执行 boolean operation ==。您应该改为执行赋值操作。 近线:memberList.forEach { it.isChecked = true }

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

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