在开发的时候遇到一个问题。就是一触摸对话框边缘外部,对话框会自己主动消失。这个问题非常纠结啊,查找了一下发现从Android 4.0開始。AlertDialog有了变化。就是在触摸对话框边缘外部。对话框会自己主动消失,查了源代码,找到解决的方法:
研究其父类时候发现,能够设置这么一条属性,在AlertDialog.Builder.create()之后才干调用这两个方法
方法一:
setCanceledOnTouchOutside(false);调用这种方法时,按对话框以外的地方不起作用。
按返回键还起作用
方法二:
setCancelable(false);调用这种方法时,按对话框以外的地方不起作用。按返回键也不起作用
这两个方法都属于Dialog方法,可查阅源代码
改动后的源代码例如以下:
case 1:
dismissDialog(1);
new Builder(SplashActivity.this).setTitle("提示").setCancelable(false)
.setMessage("获取软件初始化信息失败!\n请检查网络是否通畅。")
.setPositiveButton("确认", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
SplashActivity.this.finish();
}
}).show(); break;
版权声明:本文博客原创文章,博客,未经同意,不得转载。