运行时ScrollView中的多个TextView

时间:2012-06-16 12:08:37

标签: android android-layout

我正在尝试在运行时将一堆TextView添加到scrollview,但我得到The specified child already has a parent. You must call removeView on the child's parent first

main.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>

testapp

@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);

}

2 个答案:

答案 0 :(得分:1)

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

当你使用这个setContentView(布局)时,它已经有了一个根据XML的父ScrollView视图;所以这会尝试在不同的父级中添加布局..

答案 1 :(得分:1)

您不能在setContentView()这样的Activity中使用{{1}}两次。那就是问题 看看这个答案here

  

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