[英]Android DroidGap disabling back button
请任何人建议,如何在使用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);
}
调用setOnKeyListener
上appView
帮了我。
我只需要在上面的代码片段中进行一些小改动,如下所示:
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
按键事件实际上会发生两个动作 - 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);
}
});
比Narendra的版本略胜一筹。 它可以正确处理按键以外的键按键。 例如,将下面的代码放在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);
}
});
就我而言,我使用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.