10

请任何人建议,我如何在使用时禁用后退按钮按下事件PhoneGap

我需要在我的Activity, (DroidGap代码)中做一些事情来控制后退按钮事件。

甚至,以下代码在我的 . 中运行良好Activity,但在与DroidGap.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_BACK) {
         //preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
         return true;
     }
     return super.onKeyDown(keyCode, event);    
}
4

5 回答 5

7

打电话帮了我setOnKeyListenerappView

我只需要在上面的代码片段中做一个小的改动,如下所示:

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            return true;
        }
        return onKeyDown(keyCode, event); 
    } 
});

已编辑

按键事件时实际上发生了两个动作 - Action Up&Action Down

因此,应使用以下内容来获取关键事件。

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
            // Do Here whatever you want 
            return true;
        }
        return onKeyDown(keyCode, event); 
    } 
});
于 2013-04-10T10:44:26.453 回答
5

比纳伦德拉的版本略好。它可以正确处理除后退按钮以外的按键呼叫。例如,将下面的代码放在 onCreate 覆盖中。

appView.setOnKeyListener(new View.OnKeyListener() { 

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_UP) {
                if(keyCode == KeyEvent.KEYCODE_BACK) {
                    // Do Stuff Here
                    return true;
                }
                return onKeyUp(keyCode, event);
            }
            return onKeyDown(keyCode, event); 
        } 
   });
于 2013-05-29T07:23:28.720 回答
2

就我而言,我像这样使用 Javascript + jquery:

$(document).on('backbutton',
     function(e){

         e.preventDefault();

         // do whatever you like here.

});
于 2013-04-05T13:03:03.873 回答
0
// ************ stop the back button  *****************

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

        return true;
    }
    return super.onKeyDown(keyCode, event);
}
于 2013-10-05T05:11:10.437 回答
0
if (keyCode == KeyEvent.KEYCODE_BACK) {

    return true;
}
于 2014-02-25T06:35:26.590 回答