如何关闭AlertDialog.Builder对话框(AlertDialog.Builder对话框并没有类似finish()或者dismiss()这样的方法。那如何才能去关闭这个对话框呢?)

如何关闭AlertDialog.Builder对话框(AlertDialog.Builder对话框并没有类似finish()或者dismiss()这样的方法。那如何才能去关闭这个对话框呢?),第1张

如何关闭AlertDialog.Builder对话框(AlertDialog.Builder对话框并没有类似finish()或者dismiss()这样的方法。那如何才能去关闭这个对话框呢?) 如何关闭alertDialog.Builder对话框

首先我的需求是点击alertDialog的一个选项时,进行一些数据库 *** 作,然后此界面会被销毁,这时如果只是像下面这样

alertDialog.Builder builder = new alertDialog.Builder(this);
...
builder.show();

程序报异常:Activity has leaked window DecorView@992a599[XXXActivity] that was originally added here

原因是当Activity销毁时,如果该Activity上还有显示着的Dialog就会报这个异常。

解决方法是Activity销毁时dismiss掉Dialog,即在ondestroy()中

if(mDialog != null) {  
	mDialog.dismiss();  
} 

但是alertDialog.Builder对话框并没有类似finish()或者dismiss()这样的方法。那如何才能去关闭这个对话框呢?

Dialog dialog = builder.show();
if (dialog != null){
	dialog.dismiss();
}

这样做就可以移除dialog了。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5671717.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存