我有一个正在使用主题的活动。对话框样式,使其成为另一个活动上方的浮动窗口。但是,当我在对话框窗口外(在后台活动上)单击时,对话框关闭。我怎样才能阻止这种行为?


当前回答

为了防止对话框在返回键按下时被取消,使用这个

dialog.setCancelable(false);

为了防止对话框在外部触摸时消失,使用这个

 dialog.setCanceledOnTouchOutside(false);

其他回答

以下是我的解决方案:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select The Difficulty Level");
builder.setCancelable(false);

这对你有帮助。它是处理touch outside事件的一种方式:

如何取消一个对话主题,如活动时触摸窗外?

通过捕捉事件,什么都不做,我认为你可以阻止关闭。但奇怪的是,你的活动对话框的默认行为应该是当你触摸外部时不关闭自己。

(PS:代码使用WindowManager.LayoutParams)

当在onCreate中使用dialog作为一个活动时,添加这个

setFinishOnTouchOutside(false);

警告对话框已弃用,因此使用对话框对话框=新对话框(此);

防止外界接触

dialog.setCanceledOnTouchOutside(false);
        alert.setCancelable(false);
        alert.setCanceledOnTouchOutside(false);

我想这对你有帮助。这对我很管用