覆盖对话框的OnBackPressed

问题描述:

如何在对话框中专门覆盖后退按钮以完成整个活动而不仅仅是对话框。覆盖对话框的OnBackPressed

使用setOnCancelListener和setOnDismissListener不起作用,因为还有其他时候我只是关闭对话框而没有关闭它后面的整个活动。

编辑

谢谢Shubayu可能工作!

我还能够通过此功能访问对话框中的后退按钮。

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { 
    @Override 
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
     if (event.getKeyCode() == KeyEvent.KEYCODE_BACK){ 
     finish(); 
     } 
    return false; 
    } 
}); 
+0

你也可以参考这个答案:http://stackoverflow.com/a/6205043/1603849 – 2014-01-21 21:50:16

覆盖

公共无效onBackPressed()

活动的

,放在你想在它的行为方式。还要在对话框中设置一个布尔值,您可以在Activity中使用onBackPressed()。如果布尔值为true,则运行onBackPressed()代码的禁用部分否则不会。

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) {  
     if ((keyCode == KeyEvent.KEYCODE_BACK){   
     // your logic goes here 
      return true;  
     }  
     return super.onKeyDown(keyCode, event); 
} 

使用上面的代码::

您可以使用:dialog.setOnCancelListener(.....) 第一套dialog.setCancelable(真);

比你可以把下面的代码:

dialog.setOnCancelListener(new DialogInterface.OnCancelListener() 

{ @覆盖 公共无效onCancel(DialogInterface对话框) {// 添加代码backpress } });