2011-09-26 22 views
7

Bu benim kodudur: İkinci satırdajava.lang.IllegalStateException: Belirtilen çocuğun zaten bir üst bilgisi var. Önce çocuğun ebeveyni üzerindeki removeView() çağırmalıdır

Frame.gameController.test(); 
setContentView(Frame.world.getScreen()); 
Frame.world.setRunning(true); 

aşağıdaki hatayı alıyorum:

ERROR/AndroidRuntime(15229): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 

kimse bana bunu çözmek yardımcı olur musunuz? Önceden sadece iyi çalışıyordu, sorun başka bir etkinlikte aldığımda başlıyor.

Android 2.2 kullanıyorum.

+0

Tuval üzerine çizim yapıyorum, eğer –

cevap

10

Aynı görünümü birden çok etkinlikte kullanamazsınız. Bunun yerine, görünümün yeni bir örneğini oluşturmalısınız.

+1

yardım ederse bana bir örnek verebilir misin? uygun şekilde nasıl yapılır? –

+1

@KISHORDATTAGUPTA, Frame.world.getScreen() bir paylaşılan örnek alıyor gibi görünüyor. Muhtemelen bunun yerine yeni bir örnek oluşturmalısınız. – ThomasW

+0

Neye örnek? Bize neredeyse hiç kod vermedin, amaç yok. Sadece istisnayı aldığın gerekçesini açıkladım. – ernazm

11

Belki de zaten ebeveynleri olan nesnelerden içerik oluşturmaya çalışıyorsunuz. Örneğin, bir aktivitede bazı görünümlerini belirleme gibi görünüyor:

TextView tv = new TextView(); 
layout.adView(tv); 
layout2.adView(tv); 

ve farklı düzen o tv eklemeye çalıştığınızda bu hata görünür. Durumunuzda bunun nedeni, bir etkinlikteki Düzenlemenin diğer etkinlikteki bir çocuk olarak ayarlanmaya çalışılmasıdır.

Çocuğu ilk önce diğer üst öğeden kaldırmanız gerekir.

+0

harika! zamanımı kurtardın. –