布尔值 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()
}
所以我尝试 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()
}