2016-09-24 16 views
0

私は2つの州:menu-stateplay-stateを得ました。Androidバックボタン(Java)を設定するにはどうすればよいですか?

私がplay-stateにいて、android back-buttonをクリックすると、アプリを終了します。しかし、私はback-buttonmenu stateに戻したいと思っています。

どうすれば設定できますか?私はActivityを持っていないので、OnBackPressedは機能しません。

は、代わりに私が 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

A stack of states bro – Chribo

答えて

0

Androidのアクティビティはアクティビティスタックに保存されます。あなたは1つのアクティビティを移動したい場合は戻りますが、このようなものを使用することができます。これはあなたの最後のactiviyに戻りますあなたの現在の活動を終了する予定となっている

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

しかし、すでに最初のアクティビティが完了している場合は、もう一度開始する必要があります。 WICHは、あなたがそれをこのように配置する必要があることを意味:

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を実装しようとしたことがありますか?それはアクティビティのスーパークラスの一部であるかもしれないし、アクティビティを使用していないと述べた - あなたは何を使用していますか?

+0

Stack of States、およびpublic boolean onKeyDownをオーバーライドしようとしましたが、何とかうまくいきませんでした。アクティビティでのみ利用可能だと思います – Chribo

関連する問題