2013-04-15 2 views
0

Я знаю, что многие люди задавали этот вопрос, но я не уверен, что решение для моей проблемы такое же.У ребенка уже есть родитель

Мой код:

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() родителя ребенка.

+0

setContentView (линейной); => setContentView (SV) – jimpanzer

+0

Спасибо, это работает! – user1965878

+0

Я также отправляю ответ, если мой комментарий поможет вам, пожалуйста, принять и отложить ответ. – jimpanzer

ответ

1

Вы делаете ошибку с setContentView, потому что вы уже добавили linearLayout в виду, и вы пытаетесь добавить второй раз, которые вызывают ошибку,

Попробуйте это:

setContentView (SV);

Вместо того, чтобы:

setContentView (линейный);

+0

Спасибо, он решил мою проблему :) – user1965878

1

Я не уверен, но предположим, что вы получаете эту ошибку на последней строке (setContentView(linear);).

Вы сначала добавите этот вид linear в scrollview SV, а затем установите его как contentView.

Я знаю, что эта ошибка возникает только при добавлении одного вида в другой дважды, но я полагаю, что это будет выглядеть так, как будет показано содержимое contentview: оно не может быть как дочерним элементом SV, так и корневым представлением.

Либо установить SV в setContentVieW, или не добавлять к этому linearScrollview

+0

Спасибо, много, это именно то, что – user1965878

1

Просто

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

Надеется, что это поможет

Смежные вопросы

 Смежные вопросы