0
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)
for 루프에서 n 개의 tablerows를 동적으로 생성하여 kmap에 넣는 방법을 생각해보십시오. – user1667307