我有一个chipgroup和一些chips在里面。我遍历这个chipgroup,获取每个chip并为其添加一个checkedChangeListener。
for (int i = 0; i < chipGroup.getChildCount(); i++) {
final Chip chip = (Chip) chipGroup.getChildAt(i);
chip.setOnCheckedChangeListener((buttonView, isChecked) -> {
//My code
});
}因此,当我打开我的应用程序并点击chip,例如chip1,它就会选择它。然后,当我再次单击该chip1时,它也会触发checkedChangeListener并在其中运行我的代码。isChecked状态没有帮助,因为它只是在每次点击时改变它的值,就像true->false->true->false一样。但是如果chip is已经检查过了,我只是不想在onCheckedChangeListener中运行我的代码。我认为一种解决方案是将我选择的chip保存在fragment或ViewModel中。你的解决方案是什么?
发布于 2021-03-10 00:30:59
我相信你可以只在chipGroup上设置一个setOnCheckedChangeListener,而不是每个单独的芯片。该侦听器将传入一个ID和isChecked作为参数。我相信在群上使用此回调将有助于解决您的问题。希望这对你遇到的问题有所帮助。
有关https://material.io/components/chips/android#using-chips的更多信息
https://stackoverflow.com/questions/66550742
复制相似问题