2011-09-26 108 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

太棒了!你節省了我的時間。 –

相關問題