如何设置Android Back-Button(Java)?

时间:2016-09-24 11:39:24

标签: java android android-studio callback back-button

所以我有2个州:menu-stateplay-state

如果我在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()也在不断更新。

我希望你们能帮助我,因为这对我来说非常重要,我试着解决它几个小时。

我会快速回答问题。

感谢。

2 个答案:

答案 0 :(得分:0)

Android活动存储在活动堆栈中。如果你想回归一项活动,可以使用以下内容:

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

这将完成您当前的活动,并让您回到上一次活动。

但是如果你已经完成了最后一次活动,那么你需要再次启动它。这意味着你需要这样说:

    Intent first_intent = new Intent(getApplication(), First_Activity.class);
            startActivity(first_intent);

答案 1 :(得分: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 - 你在用什么?