[英]Android DroidGap disabling back button
Please, anyone suggest, how can I disable back button press event while working with PhoneGap
? 请任何人建议,如何在使用
PhoneGap
时禁用后退按钮事件?
I need to do something in my Activity
, ( DroidGap
code) for controlling the back button event. 我需要在我的
Activity
( DroidGap
代码)中做一些事情来控制后退按钮事件。
Even, the following code works well in my Activity
, but not working when being used with 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);
}
Calling setOnKeyListener
on appView
helped me out. 调用
setOnKeyListener
上appView
帮了我。
I just had to make a minor change in my above code snippet, which is as follows: 我只需要在上面的代码片段中进行一些小改动,如下所示:
appView.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return onKeyDown(keyCode, event);
}
});
EDITED EDITED
There actually occurs two actions while key-pressing event - Action Up
& Action Down
按键事件实际上会发生两个动作 -
Action Up
& Action Down
So, the following should be used in order to get the key event. 因此,应该使用以下内容来获取关键事件。
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);
}
});
Slightly better than Narendra's version. 比Narendra的版本略胜一筹。 It can handle key up calls for key presses other than back button properly.
它可以正确处理按键以外的键按键。 Put the code below inside onCreate override for example.
例如,将下面的代码放在onCreate override中。
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);
}
});
In my case, I use Javascript + jquery like so: 就我而言,我使用Javascript + jquery如下:
$(document).on('backbutton',
function(e){
e.preventDefault();
// do whatever you like here.
});
// ************ stop the back button *****************
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.