安卓:startActivityForResult()与后退按钮功能 [英] Android : startActivityForResult() with BACK button functionality

查看:207
本文介绍了安卓:startActivityForResult()与后退按钮功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想开始一个新的活动结果,与 startActvityForResult( ),但我想有返回按钮,工作正常,在新的活动。

I would like to start a new activity for a result, with startActvityForResult(), but I would like to have the back button working as normal in the new activity.

目前,当我调用一个新的活动的结果,没有任何反应,当我preSS新活动的后退按钮。

Currently when I invoke a new Activity for result, nothing happens when I press the back button in the new Activity.

我想是这样的:

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

在新的活动,但没有奏效。还是没有任何反应时,后退按钮是pressed。

in the new Activity, but it didn't work. Still nothing happens when the back button is pressed.

有没有解决的办法吗?

编辑:当然,我可以加载最后活动 onBack pressed()(可我?),但它似乎是一个相当糟糕的黑客攻击。

EDIT : I could of course load the last Activity in the onBackPressed() (can I?), but it seems like a rather crappy hack.

亚历克斯安以轩的回答解决了我的问题,但我还是不明白,为什么 onBack pressed()不起作用。工作code现在是这样的:

Alex Ady's answer solves my problem, but I still don't understand why onBackPressed() doesn't work. The working code now is something like this:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        setResult(1);
        finish();
    }
    return super.onKeyDown(keyCode, event);
}

我可以用一个解释。

I could use an explanation.

推荐答案

您可以尝试

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
         finish();
    }
    return super.onKeyDown(keyCode, event);
}

这篇关于安卓:startActivityForResult()与后退按钮功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆