我有一个正在使用主题的活动。对话框样式,使其成为另一个活动上方的浮动窗口。但是,当我在对话框窗口外(在后台活动上)单击时,对话框关闭。我怎样才能阻止这种行为?
当前回答
简单地说,
alertDialog.setCancelable(false);
防止用户在对话框外单击。
其他回答
你实际上有一个活动(即使它看起来像一个对话框),因此你应该调用setFinishOnTouchOutside(false)从你的活动,如果你想保持它打开时,后台活动被单击。
编辑:这只适用于android API级别11或更高
以下是我的解决方案:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select The Difficulty Level");
builder.setCancelable(false);
为了防止对话框在返回键按下时被取消,使用这个
dialog.setCancelable(false);
为了防止对话框在外部触摸时消失,使用这个
dialog.setCanceledOnTouchOutside(false);
对于API > 11使用setFinishOnTouchOutside(false),不要担心,因为它是android的默认行为,活动主题对话框不会在API < 11的外部触摸中完成:)!!
在jetpack组合中,使用遣散onclickoutside = false属性来防止关闭。
AlertDialog(
title = {
Text("Title")
},
text = {
Text(text = name)
},
onDismissRequest = onDismiss,
confirmButton = {
TextButton(onClick = onDismiss ) {
Text("Yes")
}
},
dismissButton = {
TextButton(onClick = onDismiss ) {
Text("Cancel")
}
},
properties = DialogProperties(
dismissOnClickOutside = false
)
)
}
推荐文章
- 将所有非字母数字字符替换为空字符串
- 漂亮地打印Java集合(toString不返回漂亮输出)
- 静态嵌套类在Java,为什么?
- 如何防止Eclipse在启动时挂起?
- 模块是用不兼容的Kotlin版本编译的。其元数据的二进制版本为1.5.1,预期版本为1.1.15
- Optional和Optional的区别是什么?flatMap和Optional.map?
- 如何在Android工作室添加“libs”文件夹?
- 使用什么api来绘制其他应用程序(如Facebook的Chat Heads)?
- Java中枚举的命名:单数还是复数?
- getDefaultSharedPreferences和getSharedPreferences的区别
- 如何模拟按钮点击使用代码?
- JavaBean和POJO之间的区别是什么?
- 注释在Java中如何使用,在哪里使用?
- 如何隐藏关闭按钮在WPF窗口?
- 如何在Ubuntu下安装JDK 11 ?