我正在創建一個將行添加到現有表的應用程序。代碼如下所示:向Android上的TableRow添加視圖時出現IllegalStateException
TextView exampleTextView = (TextView) messageView.findViewById(R.id.exampleLabel);
exampleTextView.setText(locationMsg.getMessageContent());
TableRow tr = (TableRow) messageView.findViewById(R.id.tableRow);
tr.addView(exampleTextView);
table.addView(tr);
在XML我有一個表的佈局,這是一個的LinearLayout這就是內tabwidget內的FrameLayout多數民衆贊成在裏面,它看起來像這樣:
<TableLayout
android:id="@+id/distanceTable"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:background="#DDDDDD"
android:stretchColumns="1" >
<TableRow>
<TextView
android:textColor="#000000"
android:text="@string/label_device"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
<TextView
android:textColor="#000000"
android:text="@string/label_distance"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
<TextView
android:textColor="#000000"
android:text="@string/label_time"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
</TableRow>
<TableRow android:id="@+id/tableRow" >
<TextView
android:id="@+id/exampleLabel"
android:textColor="#000000"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
<TextView
android:id="@+id/anotherExampleLabel"
android:textColor="#000000"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
<TextView
android:id="@+id/someOtherLabel"
android:textColor="#000000"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
</TableRow>
</TableLayout>
創建者標籤工作正常,但是當我想將文本添加到行,應用程序崩潰,我得到一個「IllegalStateException異常」,詳細的信息是:
指定的孩子已經有一個父。您必須先調用孩子父母上的removeView() 。
我不太明白。當我看到像this這樣的教程時,沒有什麼東西必須先被刪除。 那我究竟做錯了什麼?
我試圖定義已經在XML中的標籤,因爲我在代碼中定義它時遇到了錯誤。我將在新問題中指定該錯誤。謝謝! – Lars 2011-01-31 12:48:16