问题描述:
最近使用RadioGroup控件,onCheckedChanged方法被执行了两次,困扰了一阵子。
[java]
view plain
copy
mListenKindGroup = (RadioGroup) findViewById(R.id.listen_kind_group);
mListenKindGroup.setOnCheckedChangeListener(this);
@Override
public void onCheckedChanged(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);