我有一个正在使用主题的活动。对话框样式,使其成为另一个活动上方的浮动窗口。但是,当我在对话框窗口外(在后台活动上)单击时,对话框关闭。我怎样才能阻止这种行为?
当前回答
对于API > 11使用setFinishOnTouchOutside(false),不要担心,因为它是android的默认行为,活动主题对话框不会在API < 11的外部触摸中完成:)!!
其他回答
对于更高的API 10,对话框在外部触摸时消失,而在低于API 11的情况下,对话框不会消失。为了防止这种情况,你需要做到:
xml: <项目名称=“android: windowcloseonteutside”>false</项目>
OR
在onCreate()方法中,使用:this.setFinishOnTouchOutside(false);
注:对于API 10及以下,此方法无效,也不需要。
builder.setCancelable(假);
Mensaje(视图v){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("¿Quieres ir a el Menú principal?");
builder.setMessage("Al presionar SI iras a el menú y saldras de la materia.");
builder.setPositiveButton("SI", null);
builder.setNegativeButton("NO", null);
builder.setCancelable(false);
builder.show();
}
警告对话框已弃用,因此使用对话框对话框=新对话框(此);
防止外界接触
dialog.setCanceledOnTouchOutside(false);
Dialog dialog = new Dialog(context)
dialog.setCanceledOnTouchOutside(true);
//use this to dismiss the dialog on outside click of dialog
dialog.setCanceledOnTouchOutside(false);
//use this for not to dismiss the dialog on outside click of dialog.
观看这个链接了解更多关于对话的细节。
dialog.setCancelable(false);
//used to prevent the dismiss of dialog on backpress of that activity
dialog.setCancelable(true);
//used to dismiss the dialog on onbackpressed of that activity
你实际上有一个活动(即使它看起来像一个对话框),因此你应该调用setFinishOnTouchOutside(false)从你的活动,如果你想保持它打开时,后台活动被单击。
编辑:这只适用于android API级别11或更高
推荐文章
- Java Regex捕获组
- Openssl不被视为内部或外部命令
- 如何添加自定义方法到Spring Data JPA
- 如何在Ubuntu中设置Java环境路径
- 无法执行dex:在Eclipse中超过GC开销限制
- 有人能解释一下JPA和Hibernate中的mappedBy吗?
- 是什么导致JNI调用变慢?
- Java中的&和&&有什么区别?
- 使用Java的Collections.singletonList()?
- 如何以编程方式将视图添加到视图
- 单击url会打开默认浏览器
- Maven使用多个src目录编译
- 导入时无法解析符号
- 使用Retrofit刷新OAuth令牌,而不修改所有调用
- 多个dex文件定义了landoid /support/v4/accessibilityservice/AccessibilityServiceInfoCompat