问题描述:

最近使用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);