当实现setOnKeyListener()时,后面的硬件按钮不起作用

时间:2015-08-27 14:13:34

标签: android keylistener back

如果在 myView 上实施 OnKeyListener ,则后面的硬件按钮不起作用:

myView.setOnKeyListener(new EditText.OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {

             if(keyCode == KeyEvent.KEYCODE_BACK)
                    return false;

              /*.....more code here.....*/

        }
}

我想要的是获得后退按钮的正常行为,我认为这应该发生,因为每当 keyCode 等于 KeyEvent.KEYCODE_BACK 即可。

注意:我在服务上使用此代码

2 个答案:

答案 0 :(得分:1)

Check this for details 此外,您可能希望使用onKeyDown而不是onKey

取决于您的版本:

API 5或更低。

@Override
public void onBackPressed() {
    super.onBackPressed();
    // your code.
}

API 6转发

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

答案 1 :(得分:-1)

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

    /*.....more code here.....*/
}