В настоящее время я создаю приложение, которое добавляет строки в существующую таблицу. Код выглядит следующим образом:
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, который находится внутри frameLayout, который находится внутри tabwidget, и он выглядит так:
<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() для родителя дочернего элемента.
Я не совсем понимаю. Когда я смотрю на учебник, подобный этот, нет ничего, что нужно было бы удалять в первую очередь. Так что именно я делаю неправильно?