将单选按钮添加到单选按钮组时出错 - Removeview()

时间:2017-02-22 04:13:40

标签: android jquery eclipse android-radiogroup android-radiobutton

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().... 有人帮助我...

1 个答案:

答案 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);