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