gpt4 book ai didi

android - 在 Android 上向 TableRow 添加 View 时出现 IllegalStateException

转载 作者:搜寻专家 更新时间:2023-11-01 09:15:47 25 4
gpt4 key购买 nike

我目前正在创建一个向现有表格添加行的应用程序。代码如下所示:

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”,详细消息是:

The specified child already has a parent. You must call removeView() on the child's parent first.

我不太明白。当我看像 this 这样的教程时没有任何东西必须先删除。那么我究竟做错了什么?

最佳答案

您的 TextView 已经是另一个 View 的 subview 。您不能简单地更改父级 - 您必须从一个父级中删除 View 并将其添加到另一个。

仔细观察,您根本不需要手动将特定 TextView 添加到表格行 - 根据您的 xml,它已经存在。

addView() 方法通常为新创建的 View 调用,而不是为您在 xml 中定义的 View 调用。

关于android - 在 Android 上向 TableRow 添加 View 时出现 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com