2012-09-14 6 views
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) 

답변

0

이 코드 유일한 문제가되지 않습니다,하지만 당신은 당신이 하나의 TableRow를 생성하기 때문에 발생에 대해 불평하고있는 문제는 그 세를 추가 타임스. kMap에는 3 개의 다른 TableRow 객체가 포함되어야하며 동일한 객체는 3 회 포함되어서는 안됩니다.

+0

for 루프에서 n 개의 tablerows를 동적으로 생성하여 kmap에 넣는 방법을 생각해보십시오. – user1667307