孩子已经有了父母

时间:2013-04-15 06:55:40

标签: java android xml scrollbar parent-child

我知道很多人都会问这个问题,但我不确定我的问题的解决方案是否相同。

我的代码是:

package com.example.goo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

public class Calendrier extends Activity{

    LinearLayout linear;

    TextView text;

    ScrollView SV;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SV = new ScrollView(this);          

        linear = new LinearLayout(this);
        linear.setOrientation(LinearLayout.VERTICAL);

        text = new TextView(this);
        text.setText("This is an example for the Bright Hub !");

        SV.addView(linear);
        linear.addView(text);
        setContentView(linear);

    }
}

,错误是:

  

引起:java.lang.IllegalStateException:指定的子节点已经有父节点。您必须首先在孩子的父母身上调用removeView()。

3 个答案:

答案 0 :(得分:1)

您在使用setContentView时出错了,因为您已在视图中添加了linearLayout并且您尝试添加第二次导致错误,

试试这个:

  

的setContentView(SV);

相反:

  

的setContentView(线性);

答案 1 :(得分:1)

我不确定,但我想你在最后一行(setContentView(linear);)收到了这个错误。

首先将该视图linear添加到滚动视图SV,然后将其设置为contentView。

我只知道当你将一个视图添加到另一个视图时会出现这个错误两次,但我想设置它会因为contentview的工作方式相同:它不能同时是SV的子视图和根视图。

SV中设置setContentVieW,或者不将linear添加到Scrollview

答案 2 :(得分:1)

只需

setContentView(linear); => setContentView(SV);

希望有所帮助