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

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

这里写图片描述

初始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 && (<
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值