0

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

使用 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;
    }
});
4

3 回答 3

0

覆盖

公共无效 onBackPressed ()

活动,并以您希望其中的行为方式进行。还要从对话框中设置一个布尔值,您在 Activity 的 onBackPressed() 中使用该布尔值。如果布尔值为真,则运行 onBackPressed() 代码的禁用部分,否则不运行。

于 2012-04-07T02:59:21.593 回答
0
  @Override  
    public boolean onKeyDown(int keyCode, KeyEvent event) {    
        if ((keyCode == KeyEvent.KEYCODE_BACK){        
        // your logic goes here   
            return true;    
        }    
        return super.onKeyDown(keyCode, event);
}

使用上面的代码::

于 2012-04-07T03:18:30.560 回答
0

您可以使用:dialog.setOnCancelListener(.....) 第一组dialog.setCancelable(true);

比您可以放置​​以下代码:

  dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
    @Override
    public void onCancel(DialogInterface dialog)
    {
         // add code backpress 
    }
});
于 2017-09-11T06:15:42.513 回答