1

我有一个错误,我不明白这是什么意思。我是 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);

任何人都可以帮忙吗?

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

4

1 回答 1

1

您的问题是您同时添加mRadioGroupmainTableand row

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

正如您部分发现的那样,删除这些行中的任何一个,它都会起作用。

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

此外,您从未真正初始化过row- 确保这样做

TableRow row = new TableRow(this);

在你使用它之前!

于 2012-08-05T11:28:55.583 回答