您的位置:首页 > 其它

setOnCheckedChangeListener为什么执行了两次

2017-05-09 18:41 393 查看
问题描述:

最近使用RadioGroup控件,onCheckedChanged方法被执行了两次,困扰了一阵子。

[java] view
plain copy

mListenKindGroup = (RadioGroup) findViewById(R.id.listen_kind_group);  

mListenKindGroup.setOnCheckedChangeListener(this);  

  

@Override  

public void onCheckedChanged(
cbca
RadioGroup group, int checkedId) {  

        Log.d(TAG, "onCheckedChanged");  

}  

以上代码当初始化进入调用mListenKindGroup.check(R.id.forwad_style_call_forwad);时,

通过log打印发现setOnCheckedChangeListener方法被调用了两次,由于我是check之后弹出一个对话框,这样一来就弹出了两个对话框,显然不是我想要的结果,

那怎么让它只调用一次呢?

解决方法:

直接根据id获取子RadioButton对象来setChecked()

[java] view
plain copy

((RadioButton)mListenKindGroup.findViewById(R.id.listen_kind_group)).setChecked(true);  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: