在Android中以编程方式选择/取消选择芯片组内的所有芯片

问题描述

我有一个芯片组,并且在其中以编程方式添加“选择芯片”,并且有一个名为“全选”的按钮,如果其中一些已选中,则可以选择全部,而单击“同一个按钮”则可以一次取消选择所有芯片。

现在,请为我提供一些适当的方法,否则,如果可以使用芯片组而不是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()