我正在我的应用程序中的一个活动中显示对话框。当我在对话框中检测到关键事件时,它正在多次执行。我必须回到之前的活动而不解除对话框。任何人都不知道它吗?
@Override
public boolean onKey(DialogInterface arg0, int keyCode,
KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && IsClicked==false) {
if (GlobalApp.activity != null) {
Log.i("Activity",""+GlobalApp.activity);
IsClicked=true;
GlobalApp.activity.onBackPressed();
dialog_Footer.dismiss();
}
}
return true;
}
答案 0 :(得分:1)
它被调用两次,一次用于按键,第二次用于释放它。试试这个:
@Override
public boolean onKey(DialogInterface arg0, int keyCode,
KeyEvent event) {
if (event.getAction()!=KeyEvent.ACTION_DOWN) return true;
if (keyCode == KeyEvent.KEYCODE_BACK && IsClicked==false) {
if (GlobalApp.activity != null) {
Log.i("Activity",""+GlobalApp.activity);
IsClicked=true;
GlobalApp.activity.onBackPressed();
dialog_Footer.dismiss();
}
}
return true;
}