有关RadioGroup的OnCheckedChanged方法执行多次的探讨

来源:互联网 发布:js农历日历控件 编辑:程序博客网 时间:2024/06/16 00:28

RadioGroup是比较常用的控件,我们遇到单项选择时会经常考虑用到。
首先我们为RadioGroup设置选择监听器:

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(RadioGroup group, int checkedId) {                Log.d("onCheckedChanged", "check");            }        });

但是当我们调用radioGroup.check(int id)方法时,通过Log打印信息会发现onCheckedChanged方法会调用两次,这肯定不是我们预期结果。

后来我发现RadioButton不是有个setChecked(boolean check)方法嘛,于是我换一种思路,不用radioGroup.check(int id)的方法:

RadioButton rb = (RadioButton) radioGroup.findViewById(id);        rb.setChecked(true); // 代替radioGroup.check(id)方法

在运行一次程序,看Log打印信息只打印了一次信息,知道onCheckedChanged方法只调用了一次,问题得以解决。

这个学习记录与大家共勉。

0 0
原创粉丝点击