调用RadioGroup的check(id)方法,监听onCheckedChanged方法被执行多次;调用clearCheck(),onCheckedChanged方法仍被执行的原因和解决办法

在Android开发中,遇到RadioGroup的check(id)方法调用后,onCheckedChanged监听被多次执行的问题。原因是check方法内部会触发三次setChecked,导致监听事件响应三次。同样,clearCheck()也会间接调用check(-1),引发一次onCheckedChanged。解决方案是直接使用RadioButton的setChecked方法,避免通过RadioGroup调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做一个效果,如下图:

这里写图片描述

初始1为选中,展现一布局。点2则2为选中,其他不选中,3也一样。当点击搜索时这3个都不选中(这里我隐藏了一个4,当点击搜索隐藏的4为选中,其他就会呈现都不选中的情况)。
起初我使用了Radiogroup.check(1的id)来初始化。并没有发现有什么异常。
但在我运行搜索时,发现了界面并没有直接呈现出我想要的效果。而是不管搜索什么都出现一样的数据。即搜索框内为空的搜索数据。
故而我查询了代码中的逻辑,目光锁定在了每次搜索完我都会清空Editview内的数据。每次出现同样的空数据,极其有可能当我点击搜索时运行Radiogroup.check(4的id)时,在监听事件内不止一次的响应了。故而在第一次响应后Editview已经清空,所以每次都会呈现一样的数据。
所以我就查看了下radiogroup的源码:

public void check(int id) {
        // don't even bother
        if (id != -1 && (<
### 如何在 Visual Studio Code (VSCode)创建 Maven 项目 #### 安装必要的扩展包 为了顺利地在 VSCode 中操作 Maven 工程,需先安装几个重要的插件。这些插件提供了对 Java 的语法支持、调试功能以及测试运行的支持[^2]。 - **Java Extension Pack**: 这个集合包含了多个有助于开发 Java 应用程序的扩展。 - **Debugger for Java**: 提供了强大的调试能力来帮助开发者更高效地解决问题。 - **Java Test Runner** 确保以上提到的所有插件都已成功安装到 VSCode 环境中之后再继续下一步的操作。 #### 设置本地 Maven 地址 如果希望使用自定义版本的 Apache Maven 而不是默认随 IDE 自带的那个,则可以通过配置 `settings.json` 文件中的 `"maven.executable.path"` 属性指向本地安装路径完成设置。 对于 Mac 用户来说,在 M1 或更新型号上可能还需要额外注意 JDK 版本的选择以匹配硬件架构的要求;例如文中提及的是针对 M1 Pro 使用 JDK 1.8 和 Maven 3.8.4 组合的情况[^3]。 #### 初始化一个新的 Maven 项目 一旦准备工作就绪,就可以通过命令面板 (`Ctrl+Shift+P`) 输入并执行 "Maven: Create New Project..." 来引导新项目的建立过程。此时会弹出一系列选项让用户指定 GroupId, ArtifactId 及其他必要参数用于描述即将诞生的应用程序基本信息[^1]。 ```bash mvn archetype:generate \ -DgroupId=com.example \ -DartifactId=my-maven-project \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DinteractiveMode=false ``` 上述脚本展示了如何利用 Maven 命令行工具快速搭建起一个基础结构完整的 Java 应用框架实例。当然也可以直接借助于图形界面交互方式实现相同目的而无需手动编写 Shell Script。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值