【问题标题】:Android : Error when adding radio group programmaticallyAndroid:以编程方式添加无线电组时出错
【发布时间】:2012-08-02 16:31:25
【问题描述】:

我遇到了一个错误,我不明白它是什么意思。我是 Android 新手

Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

我正在尝试以编程方式将单选组添加到表格布局中

首先我将单选组添加到表格布局中,然后将单选按钮添加到单选组

RadioGroup mRadioGroup;
mRadioGroup = new RadioGroup(this);
TableLayout mainTable = (TableLayout) findViewById(R.id.myTable);
mainTable.addView(mRadioGroup);

然后我创建一个行并将单选组添加到该行,最后将该行添加到表格布局中

TableRow row;
RadioButton radioButton = new RadioButton(this);
radioButton.setId(1);
radioButton.setText("SomeText");
row.addView(mRadioGroup);

mainTable.addView(row);

有人可以帮忙吗?

编辑:当我将收音机组直接添加到表格布局而不是表格行时,它起作用了

【问题讨论】:

    标签: android android-layout radio-button radio-group


    【解决方案1】:

    您的问题是您将mRadioGroup 添加到mainTablerow

    mainTable.addView(mRadioGroup);
    ...
    row.addView(mRadioGroup);
    

    正如您部分发现的那样,删除其中任一行,它就会起作用。

    不必必须将 View 添加到 TableRow 才能将其添加到 TableLayout,但它的行为会有所不同,具体取决于您是否这样做。

    另外,您从未真正初始化过row - 请务必这样做

    TableRow row = new TableRow(this);
    

    在你使用它之前!

    【讨论】:

    • 谢谢 Sharkos,我删除了其中一个,它的工作原理就像我希望在此代码之前初始化行
    猜你喜欢
    • 2014-03-07
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    相关资源
    最近更新 更多