Android RadioButton无法使用setChecked(false)方法取消设置

如果我第一次设置一个单选button,它可以正常工作。 但是,如果我通过调用((RadioButton)findViewById(R.id.ID))来取消select。setChecked(false); 然后,即使我尝试通过调用setChecked(true)来使其选中将不起作用,除非用户从屏幕上select它。

有没有人遇到过这个? 还是只有我?

if(Val != null){ if( ((RadioButton) findViewById(R.id.ID1)).getText().toString().trim().equals(Val)) ((RadioButton) findViewById(R.id.ID1)).setChecked(true); else if(((RadioButton) findViewById(R.id.ID2)).getText().toString().trim().equals(Val)) ((RadioButton) findViewById(R.id.ID2)).setChecked(true); } else { ((RadioButton) findViewById(R.id.ID1)).setChecked(false); ((RadioButton) findViewById(R.id.ID2)).setChecked(false); } 

如果其他部分至less被执行一次,那么所有东西都会变得混乱起来。 当我进入debugging器时,我可以看到执行进入正确的path并将其设置为true。 它只执行一次,我检查了。 而且我不会将代码的任何其他部分重置为false。

Solutions Collecting From Web of "Android RadioButton无法使用setChecked(false)方法取消设置"

我find了解决scheme。

不能取消选中某个单选button。 您只能将其他项目设置为true。

因此,要清除所有选中的项目,您应该调用RadioGroup上的clearcheck()方法。

所以我的其他部分是

  else { ((RadioGroup) findViewById(R.id.ID0)).clearCheck(); } 

拿一个不可见的单选button,并检查它。 组的所有其他单选button将被自动取消选中。