【问题标题】:Override Dialog's OnBackPressed覆盖对话框的 OnBackPressed
【发布时间】:2012-04-07 02:42:55
【问题描述】:

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

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

【问题讨论】:

标签: android


【解决方案1】:

覆盖

public void onBackPressed()

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

【讨论】:

    【解决方案2】:
      @Override  
        public boolean onKeyDown(int keyCode, KeyEvent event) {    
            if ((keyCode == KeyEvent.KEYCODE_BACK){        
            // your logic goes here   
                return true;    
            }    
            return super.onKeyDown(keyCode, event);
    }
    

    使用上面的代码::

    【讨论】:

      【解决方案3】:

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

      你可以在下面放置代码:

        dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
      {
          @Override
          public void onCancel(DialogInterface dialog)
          {
               // add code backpress 
          }
      });
      

      【讨论】:

        猜你喜欢
        • 2011-09-06
        • 2013-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-04
        • 2020-12-04
        • 1970-01-01
        相关资源
        最近更新 更多