Java でテーブルを作成する必要があり、実行前に行数がわかりません。だから私はテーブルを作成する次のJavaコードを持っています。ただし、表の行を表のレイアウトに追加しようとすると、不正な状態の例外がスローされます。どうすればこの問題を解決できますか?
Map<Integer,TableRow> kMap = null;
for(int i=0;i<noofrows;i++)
{
TableRow test=new TableRow(this);
kMap = new HashMap<Integer,TableRow>();
for(int k = 0; k < 3; k++)
{
kMap.put(k, test);
}
}
TextView empty = new TextView(this);
// title column/row
TextView title = new TextView(this);
title.setText("Java Weather Table");
TableRow.LayoutParams params = new TableRow.LayoutParams();
params.span = 6;
rowTitle.addView(title, params);
//Add some more fields to the rows
table1.addView(rowTitle);
table1.addView(kMap.get(0));
//Exception is thrown
table1.addView(kMap.get(1));
table1.addView(kMap.get(2));
//table1.addView(rowConditions);
setContentView(table1);
猫の足跡を記録します。
09-14 07:02:50.265: E/AndroidRuntime(384): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
09-14 07:02:50.265: E/AndroidRuntime(384): at android.view.ViewGroup.addViewInner(ViewGroup.java:1970)
09-14 07:02:50.265: E/AndroidRuntime(384): at android.view.ViewGroup.addView(ViewGroup.java:1865)
09-14 07:02:50.265: E/AndroidRuntime(384): at android.widget.TableLayout.addView(TableLayout.java:418)
09-14 07:02:50.265: E/AndroidRuntime(384): at android.view.ViewGroup.addView(ViewGroup.java:1822)
09-14 07:02:50.265: E/AndroidRuntime(384): at android.widget.TableLayout.addView(TableLayout.java:400)
09-14 07:02:50.265: E/AndroidRuntime(384): at android.view.ViewGroup.addView(ViewGroup.java:1802)
09-14 07:02:50.265: E/AndroidRuntime(384): at android.widget.TableLayout.addView(TableLayout.java:391)