2011-04-08 44 views
1

我有下面的代碼來處理我的應用程序按鈕按下:如何在按下後退按鈕時將佈局設置爲以前的佈局?

if (keycode == KeyEvent.KEYCODE_BACK && CURRENT_VIEW == MAIN_MENU_ACTIVE) { 
     Window window = this.getWindow(); 

     window.setContentView(R.layout.main); 
     CURRENT_VIEW = MAIN_MENU_ACTIVE; 

     return true; 

    } 

當它跑不過,Android的只是跳躍直奔return語句,而不是改變佈局。有什麼我在這裏做錯了嗎?這是針對遊戲的,所以基本上我希望用戶能夠通過點擊後退按鈕從遊戲創建屏幕返回到主菜單。

+0

什麼類型的字段是CURRENT_VIEW和MAIN_MENU_ACTIVE?你的問題必須在CURRENT_VIEW == MAIN_MENU_ACTIVE。 – Tenfour04 2011-04-08 22:46:58

+0

這些都是整數。我正在使用它們來跟蹤屏幕上顯示的佈局。如果我在if語句中放置一個斷點,它會直接跳轉到return語句。 – ertemplin 2011-04-08 23:42:49

+0

OMG我不好,不小心讓if語句沒有通過。對不起,浪費你的時間。 – ertemplin 2011-04-09 02:02:07

回答

0

只是使用setContentView(R.layout.main);。不要開始使用Window,因爲我確信你不需要。

+0

我開始使用窗口,因爲它沒有工作,當我嘗試它的活動。它總是跳到返回語句。這就像我有一個壞的陳述或其他東西。 – ertemplin 2011-04-08 21:59:46

0

您不應該多次撥打setContentView。爲什麼不簡單地使用finish(),這會將用戶返回到之前的活動?

+0

爲什麼我不能多次調用setContentView?我在我的代碼中有3個地方使用setContentView,他們都工作正常。 – ertemplin 2011-04-08 21:58:00

+0

你連續多次打電話給它?這往往會產生錯誤。我不確定它是否被特別禁止。 – 2011-04-08 22:01:04

+0

是的,這是爲了一個遊戲,所以基本上我希望用戶能夠通過點擊後退按鈕從遊戲創建屏幕返回到主菜單。我可以重新啓動這個活動,但是我必須重新加載啓動時加載的所有內容。 – ertemplin 2011-04-08 22:05:13