Android后退按钮

问题描述:

在我的应用程序中,我有一个按钮,如果用户单击屏幕上显示的文本框 (我使用从可见性设置可见性)。 我遇到的问题是当用户按下设备上的BACK按钮时:它关闭我的应用程序。Android后退按钮

有什么办法,当用户按下返回按钮比我的代码将被调用(所以我可以设置可见性GONE)?

因为API 1级以下工作:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     //Do whatever you want 
     //AND 
     //return true to tell the framework you did handle the back key 
     return true; 
    } 
    //This is not the back key, just ask the framework to behave as usual. 
    return super.onKeyDown(keyCode, event); 
} 

从API级开始5(安卓2.0),你也可以使用:

@Override 
public void onBackPressed() { 
    // Do something (or nothing) here 
    return; 
} 

一个完整的概述,请参阅this android developer blog message

+0

当我们没有调用超类方法时,默认完成将不起作用super.onKeyDown(keyCode ,事件)看看我的代码; –

+0

@ArpitGarg,你的意思是返回'onKeyDown'上面的'false'不会'finish()'Activity? –

+0

谢谢, 我用你的代码,它工作正常。 – Belgi

用您所需的功能覆盖onBackPressed()

默认实现只是调用finish()来关闭当前活动。

+0

_注意:_此操作仅适用于Android 2.0及更高版本。 (API等级5) –

+0

是的,忘记了。这就是为什么你从我这里得到一个赞成的原因。 :) – 2011-10-01 14:53:35

public boolean onKeyDown(int keyCode, KeyEvent keyEvent) { 

     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      // Put your code here 
     } 

     return true; 

    } 
+1

**小心!**您在这里无条件地返回true,您恰好取消_every_ keypresses。这是不好的,如果你尝试使用'EditText' :) –

+0

谢谢,,,你是正确的返回true将取消每个按键 –