如何在对话框中处理后退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