rd1 = (RadioButton) findViewById(R.id.rd1);
rd2 = (RadioButton) findViewById(R.id.rd2);
rd3 = (RadioButton) findViewById(R.id.rd3);
rd4 = (RadioButton) findViewById(R.id.rd4);
RadioGroup rg = new RadioGroup(this);
rg.addView(rd1);
rg.addView(rd2);
rg.addView(rd3);
rg.addView(rd4);
rd1.setChecked(true);
错误是:您必须首先在孩子的父母上调用removeview().... 有人帮助我...
答案 0 :(得分:2)
问题是你的视图是用XML创建的(这就是你必须使用findViewById的原因)
这意味着它们已经附加到您定义它们的XML树中的父节点。
您有两种选择:
正确的方法是在XML中定义RadioGroup,或者在内部使用Radios,或者以编程方式创建和添加无线电
或者糟糕(快速但是hacky)的方式是:
rd1 = (RadioButton) findViewById(R.id.rd1);
...
((ViewGroup) rd1.getParent()).removeView(rd1);
...
RadioGroup rg = new RadioGroup(this);
rg.addView(rd1);
...
rd1.setChecked(true);