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

あなたの問題はあなたがmRadioGroup両方に追加してmainTableいたことでしたrow

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

部分的に発見したように、これらの行のいずれかを削除すると、機能します。

に追加するためにを追加する必要はありませが、追加するかどうかによって動作が異なります。ViewTableRowTableLayout

また、実際に初期化rowしたことはありません-必ず実行してください

TableRow row = new TableRow(this);

使う前に!

于 2012-08-05T11:28:55.583 に答える