2016-09-24 25 views
0

所以我得到了2個國家:一個menu-state和一個play-state我如何設置Android後臺按鈕(Java)?

如果我在play-state並單擊了android back-button,那麼它將退出應用程序。但我想讓back-button將我變回menu state

我該如何設置? OnBackPressed不工作,因爲我沒有Activity

相反,我試圖將其設置這樣的play-state

@Override 
public void handleInput() { 
     if (Gdx.input.isKeyPressed(Input.Keys.BACK)){ 
      gsm.set(new MenuState(gsm)); 
     } 
} 

它還挺工作,但不是我想要的方式。所以,如果我現在點擊back-button,那麼它會轉到menu-state,但有點在Play-StateMenu-State之間循環,然後退出應用程序。但是當我持有back-button,並讓它像3秒後,然後我在K,它留在那裏,就像我想要的。

handleInput()也一直在更新。

我希望你們能夠幫助我,因爲這對我來說非常重要,我試圖修復它幾個小時。

我會盡快回答問題。

謝謝。

+1

請問您是否可以說明您的意思是沒有活動?你在建什麼樣的Android應用程序? – Ewald

+0

堆棧的國家兄弟 – Chribo

回答

0

Android活動存儲在活動堆棧中。如果你想要去的一個活動回來,你可以使用這樣的事情:

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    finish(); 
} 

這將結束當前的活動,讓你回到你的最後activiy。

但是,如果您已經完成了最後一次活動,那麼您需要重新開始。至極意味着你需要把它這種方式:

Intent first_intent = new Intent(getApplication(), First_Activity.class); 
      startActivity(first_intent); 
0
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     //Logic you want here 
     return true; 
    } else { 
     return super.onKeyDown(keyCode, event); 
    } 
} 

您是否嘗試過實施onKeyDown?它可能是Activity超類的一部分,你提到你沒有使用Activity - 你在用什麼?

+0

堆棧的狀態,我試圖重寫公共布爾onKeyDown它不知何故沒有工作,我認爲它只適用於活動 – Chribo