覆盖Android返回按钮

7

一些背景信息:我正在尝试使用ActivityGroups从tabHost活动中打开一个活动,并使该新活动保留在选项卡下面。我已经做到了这一点。但是,在那个新活动中,如果我使用返回按钮,它会直接退出选项卡活动,因此我必须点击几次才能回到原来的位置。

有没有办法将返回按钮设置为转到特定的活动,而不是关闭当前活动窗口?


https://dev59.com/zXE95IYBdhLWcg3wGZ9_ - Pacerier
2个回答

7
我相信你应该能够做类似于这样的事情:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        // start new Activity here
    }
    return super.onKeyDown(keyCode, event);
}

但是覆盖预期的后退按钮功能是不可取的。


我认为这是一种很好的实现导航的方式。只要视觉效果对用户透明,用户可以在到达导航的起点时触发默认的后退行为(也许通过双击 - 如果用户点击太慢,您可以显示一个toast提示) - Knickedi

5
一般来说,我建议不要这样做,因为它会破坏用户体验。用户希望返回按钮关闭整个窗口,特别是当您使用tabhost时。对于用户来说,整个窗口(包括所有选项卡)是一个单独的活动,当他按下返回按钮时,他想要退出整个窗口。
如果您仍然想这样做,请参考#onBackPressed()。当活动检测到用户按下返回键时,它将被调用。默认情况下是结束活动,但您可以使其执行任何操作。我建议小心谨慎。
您可能会从这里获得一些灵感。

我同意不想破坏用户体验。不过,经过进一步思考,尽管在我的情况下这样做很方便甚至很合理,但我必须想出另一种来回切换的方法。 - ryandlf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接