1

我试图在运行时将一堆 TextViews 添加到滚动视图中,但我得到了The specified child already has a parent. You must call removeView on the child's parent first.

主要的.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
    </LinearLayout>

</ScrollView>

测试应用

@Override
public void onCreate(Bundle savedInstanceState) {

    TextView[] data;

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    View layout = findViewById(R.id.layout);

            .......................................

    data = new TextView[10];

    for (int i = 0; i < 10; i++) {

        data[i] = new TextView(this);
        data[i].setText("data = " + i);


        ((ViewGroup) layout).addView(data[i]);
    }

    setContentView(layout);

}
4

2 回答 2

1

我认为问题在于布局变量。

现在,当您使用此 setContentView(layout); 所以这尝试在不同的父级中添加布局..

于 2012-06-16T12:11:54.290 回答
1

你不能像这样setContentView()在一个单曲中使用两次。Activity那就是问题所在。在这里
看这个答案:

一个视图只能有一个父视图。您正在添加的视图(我猜是重复使用)已经是另一个视图层次结构的一部分。如果您真的想重用它(我建议您可能不这样做),那么您必须将它与现有视图层次结构中的父级分离。

于 2012-06-16T12:12:04.073 回答