问题描述
我有一个芯片组,并且在其中以编程方式添加“选择芯片”,并且有一个名为“全选”的按钮,如果其中一些已选中,则可以选择全部,而单击“同一个按钮”则可以一次取消选择所有芯片。
现在,请为我提供一些适当的方法,否则,如果可以使用芯片组而不是ArrayList来完成,那就太好了 在此先感谢:)
解决方法
要取消选择,您可以使用clearCheck,对于选择,您必须进行循环
,我在kotlin中为上述解决方案创建了一个通用扩展功能 我认为这是正确的解决方案
fun ChipGroup.applyCheckedOnAll(isChecked: Boolean){
if (isChecked){
for (index in 0 until this.childCount) {
val chip:Chip = this.getChildAt(index) as Chip
chip.isChecked = true
}
}else {
this.clearCheck()
}
}
,
ChipGroup chipGroup = view.findViewById(R.id.chipGroup );
for (int i = 0; i < chipGroup.getChildCount(); i++) {
Chip chip = (Chip) chipGroup.getChildAt(i);
chip.setChecked(false);
}
,
清除选择。清除选择时,选择此组中的芯片 芯片组.clearCheck()