繁体   English   中英

如何在屏幕上显示警告框时禁用后退按钮

[英]How to disable the back button when the alert box is on the screen

我在活动中使用了onKeyDown函数.....但是当单击后退按钮按钮时,它首先取消对话框并转到我们的活动...我想要在单击后退按钮时关闭活动和对话框两者或禁用显示对话框时的后退按钮...

可以任何人建议任何解决方案....

提前致谢,


更新

您好,感谢您的回答。 progressDialog.setCancelable(false); 工作正常。

但在这里我想要不同的东西。 当进度对话框运行时,我将按BACK键,我想显示一个警告对话框,以便用户可以通知进度正在运行。

关于它有什么解决方案吗?

请帮我。

提前致谢。

您是否尝试将其setCancelable()属性设置为false

像这样的东西

progressDialog.setCancelable(false); 

可能这对你的情况有帮助:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // Show your Alert Box here
        }
        return false;
    }

我只想提高@MoJo的答案

alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {

        @Override
        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
               //Your handler   


               return false;
        }
});

个人更清洁的解决方案是在启动intent之前完成LoginActivity,而不是在新活动的bundle中设置Flags或覆盖任何方法。 尝试下面的内容,其中Login是您的登录活动,Home是成功登录用户后的第一个活动。

finish();
Intent intent = new Intent(Login.this, Home.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

“我希望活动和对话框都关闭”

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
  @Override
  public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
    finish();
    return true;
  }
});

“或在显示对话框时禁用后退按钮”这可以阻止从对话框返回。 动态创建时,添加:

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
  @Override
  public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
    return true;
  }
});

返回true表示阻止此对话框关闭,单击后退无法关闭。 我还建议添加:

dialog.setCanceledOnTouchOutside(false);

什么会阻止用户通过点击它来解除对话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM