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

时间:2010-08-30 09:25:59

标签: android dialog

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

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

提前致谢,


更新

您好,感谢您的回答。 带有progressDialog的{​​{1}}工作正常。

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

有没有解决方案?

请帮帮我。

提前致谢。

5 个答案:

答案 0 :(得分:58)

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

像这样的东西

progressDialog.setCancelable(false); 

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

我只想改进@MoJo回答

alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {

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


               return false;
        }
});

答案 3 :(得分:0)

个人更清洁的解决方案是在启动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);

答案 4 :(得分:0)

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

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);

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