布尔值 isChecked 不随 foreach 变化
Posted
技术标签:
【中文标题】布尔值 isChecked 不随 foreach 变化【英文标题】:Boolean value isChecked not changing with foreach 【发布时间】:2021-02-03 10:36:05 【问题描述】:所以我尝试使用名为 select all 的按钮从列表中选择所有项目,现在我按下按钮,我所做的是将所有字段的 isChecked 变量更新为是的,在那之后我notifysetDataChange()
所以所有的项目都被再次绘制并为我检查,我还使用一个界面来通知我的用户界面当前的成员列表,所有成员都被选中
现在,当我按下按钮时
binding.btnSelectAll.setOnClickListener
attendanceAdapter.checkAllFields()
并在适配器中更新我的列表
fun checkAllFields()
memberList.forEach it.isChecked == true
itemClickListener.onAllSelectedMembers(memberList)
notifyDataSetChanged()
所有 memberList isChecked 值保持为 false 并且没有改变,我真的不知道为什么没有改变,Members 的数据类有一个可变的 isChecked 变量,可以重新签名并且memberList也是一个可以更改的可变列表,为什么会发生这种情况?
【问题讨论】:
【参考方案1】:在您为checkAllFields()
共享的代码sn-p 中,您正在执行boolean operation
==
。您应该改为执行分配操作。
近线:memberList.forEach it.isChecked = true
所以你的代码应该是这样的:
fun checkAllFields()
memberList.forEach it.isChecked = true
itemClickListener.onAllSelectedMembers(memberList)
notifyDataSetChanged()
【讨论】:
哎呀,我漏掉了以上是关于布尔值 isChecked 不随 foreach 变化的主要内容,如果未能解决你的问题,请参考以下文章
WPF Radiobutton Group - 绑定到布尔值