2011-09-26 141 views
7

这是我的代码:java.lang.IllegalStateException:指定的子项已经有父项。你必须对孩子的父母先调用removeView()

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

在第二行我收到以下错误:

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. 

谁能帮助我解决呢?以前它工作得很好,当我把它带入另一个活动时,问题就开始了。

我正在使用android 2.2。

+0

我在画布上绘画,如果有帮助 –

回答

10

您不能在多个活动中使用相同的视图。相反,你应该创建一个新的视图实例。

+1

可以举个例子吗?如何做到这一点正确的方式? –

+1

@KISHORDATTAGUPTA它看起来像Frame.world.getScreen()正在获取共享实例。你应该创建一个新的实例。 – ThomasW

+0

一个什么样的例子?你给我们几乎没有代码,没有任何目的。我只是向你解释你正在得到的例外。 – ernazm

11

也许你正试图从已经有父对象的对象设置内容。它看起来就像你在一个活动设置了一些意见,例如:

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

,当你尝试在电视添加到不同的布局出现的错误。在你的情况下,这是因为来自一项活动的布局试图在其他活动中设置为小孩。

您必须首先从其他父母处释放孩子。

+0

太棒了!你节省了我的时间。 –

相关问题