如何在对话框中处理后退button?
我正在开发一个应用程序,按下button时,它会打开一个对话框,确定和取消button。
它工作正常。
当用户按下后退button时,我正在如下处理
public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { } return super.onKeyDown(keyCode, event); }
但是上面的方法没有被调用。 我该如何处理?
dialog.setOnKeyListener(new Dialog.OnKeyListener() { @Override public boolean onKey(DialogInterface arg0, int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK) { finish(); dialog.dismiss(); } return true; } });
听起来就像你想在创build对话框时设置OnCancelListener一样。 它看起来像这样:
dialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { //do whatever you want the back key to do } });
您需要重写OnCancel
方法。 此方法调用Back Keybutton。 这里是完美的代码。
AlertDialog alertDialog; alertDialog.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { // TODO Auto-generated method stub dialog.dismiss(); } });
希望这会帮助你,并接受它,如果它对你有帮助。
谢谢..
尝试这个
new AlertDialog.Builder(this).setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ Logger.d(TAG, "--------- Do Something -----------"); return true; } return false; } })
这是因为当你的对话框打开,然后你的窗口导航其重点对话框。 所以现在你必须在你的Dialog上处理key
。