首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置Android Back-Button (Java)?

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

Stack Overflow用户
提问于 2016-09-24 19:39:24
回答 2查看 1.3K关注 0票数 0

所以我有两个状态:一个menu-state和一个play-state

如果我在play-state中点击android back-button,它就会退出应用程序。但我想让back-button把我转回menu state

我该怎么设置呢?因为我没有Activity,所以OnBackPressed不能工作。

相反,我尝试在play-state中像这样设置它

代码语言:javascript
复制
@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()也在不断更新。

我希望你们能帮助我,因为它对我来说真的很重要,我试着修复它几个小时。

我会快速回答你的问题。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-09-24 19:52:15

Android活动存储在活动堆栈中。如果你想返回一个活动,你可以使用类似这样的东西:

代码语言:javascript
复制
    @Override
public void onBackPressed() {
    super.onBackPressed();
    finish();
}

这将结束您当前的活动,并让您返回到上一次活动。

但是如果你已经完成了你的最后一个活动,也就是第一个活动,你需要重新开始它。这意味着你需要这样说:

代码语言:javascript
复制
    Intent first_intent = new Intent(getApplication(), First_Activity.class);
            startActivity(first_intent);
票数 1
EN

Stack Overflow用户

发布于 2016-09-24 20:06:05

代码语言:javascript
复制
@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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39675913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档