2011-09-26 160 views
7

有关我为什么尝试这样做的一些信息:我正在使用ActivityGroups从tabHost活动中打开一个活动,并将新活动保留在选项卡下。我得到的那部分。但是在新的活动中,如果我使用后退按钮,它会将我带出标签活动,因此我必须点击几下才能返回到原来的位置。忽略Android后退按钮

有没有办法将后退按钮设置为特定的活动而不是杀死当前的活动窗口?

+0

http://stackoverflow.com/q/2459848/632951 – Pacerier

回答

5

一般来说,我会建议不要这样做,因为它会破坏用户体验。用户期望后退按钮杀死整个窗口,特别是因为您使用的是tabhost。对于用户来说,整个群组(标签和全部)是他想要在点击后退按钮时退出的单个活动。

如果您仍想这样做,请参阅#onBackPressed()。当活动检测到用户按下后退键时调用它。默认是完成活动,但你可以让它做任何你想要的。我建议小心谨慎。

您可能会从here找到一些灵感。

+0

我同意不想破坏用户体验。稍微多思考一下,虽然这会很方便,甚至在我的情况下也是有意义的。我将不得不想出另一种来回的方法。 – ryandlf

7

我相信你应该能够做这样的事情:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
     // start new Activity here 
    } 
    return super.onKeyDown(keyCode, event); 
} 

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

+0

我认为这是实现导航的好方法。只要视觉方法对用户是透明的,并且用户可以在他到达导航*开始时触发默认的后退点击行为(可能通过双击 - 如果用户点击放慢,您可以显示吐司提示) – Knickedi

+0

为我工作谢谢 –