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


当前回答

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

防止外界接触

dialog.setCanceledOnTouchOutside(false);

其他回答

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

dialog.setCancelable(false);

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

 dialog.setCanceledOnTouchOutside(false);

对我来说有用的是创建DialogFragment并将其设置为不可取消:

dialog.setCancelable(false);

简单地说,

alertDialog.setCancelable(false);

防止用户在对话框外单击。

对于更高的API 10,对话框在外部触摸时消失,而在低于API 11的情况下,对话框不会消失。为了防止这种情况,你需要做到:

xml: <项目名称=“android: windowcloseonteutside”>false</项目>

OR

在onCreate()方法中,使用:this.setFinishOnTouchOutside(false);

注:对于API 10及以下,此方法无效,也不需要。

你实际上有一个活动(即使它看起来像一个对话框),因此你应该调用setFinishOnTouchOutside(false)从你的活动,如果你想保持它打开时,后台活动被单击。

编辑:这只适用于android API级别11或更高