java - 防止芯片双击
问题描述
我有一个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
每次点击一样改变它的值。但我只是不想在里面运行我的代码onCheckedChangeListener
,如果chip is
已经检查过的话。我认为的一种解决方案是将我选择的内容保存chip
在内部fragment
或ViewModel
. 你的解决方案是什么?
解决方案
我相信您可以setOnCheckedChangeListener
在chipGroup 上设置一个而不是每个单独的芯片。该侦听器将传入一个 ID 和 isChecked 作为参数。我相信在群组中使用此回调将有助于解决您的问题。希望这有助于解决您遇到的问题。
有关https://material.io/components/chips/android#using-chips的更多信息
推荐阅读
- python - 获取数字列表的更快方法
- wordpress - 我可以在哪里编辑似乎不在代码中的 wordpress 文本?
- ruby-on-rails - 我无法在我的 Rails 应用程序中创建 manifest.json
- wordpress - Wordpress 回显或获取除最后 6 个字符外的单个帖子标题
- mongodb - 如何在 F# 中对 Mongo 集合进行排序
- javascript - 获取符号名称
- asp.net-mvc - 问题添加涉及在 ASP.NET MVC 5 中使用实体框架代码优先引用 ApplicationUser 的实体的迁移
- java - jlink 打包当前平台的二进制文件
- python-3.x - 在Python中在偶数x轴上不均匀地绘制多个箱形图
- android - 了解 Flutter 依赖和 Build.gradle 关系