setOnCheckedChangeListener为什么执行了两次

问题描述:

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

[java]  view plain  copy
  1. mListenKindGroup = (RadioGroup) findViewById(R.id.listen_kind_group);  
  2. mListenKindGroup.setOnCheckedChangeListener(this);  
  3.   
  4. @Override  
  5. public void onCheckedChanged(RadioGroup group, int checkedId) {  
  6.         Log.d(TAG, "onCheckedChanged");  
  7. }  

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

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

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


解决方法:

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

[java]  view plain  copy
  1. ((RadioButton)mListenKindGroup.findViewById(R.id.listen_kind_group)).setChecked(true);  

你可能感兴趣的:(Android,疑难杂症)