Android设置Dialog是否可隐藏

本文详细介绍了在Android开发中通过修改Dialog内部属性实现窗口不可关闭的方法,包括设置Dialog是否可隐藏的功能及其原理,以及如何在触发事件内进行操作而不关闭窗口,适用于需要在操作过程中保持对话框显示的场景。

在Android开发中,经常需要用到提示框,一般对美观性要求不算高的都是直接用原生的Dialog或者Builder,再用自定义的布局设置Dialog显示的内容。

但在这种情况下,在点击negative Button或者positive Button的时候,程序会执行你在这两个Button设置的触发事件,然后dismiss掉Dialog。

然而在一般情况下,若是触发事件里面有判断或者其他中断触发事件的操作,就不能关闭窗口,要提示用户,而不是关闭了窗口再提示。

先上代码:

/**设置dialog是否可隐藏*/
	 public static void setHideDialog(DialogInterface dialog, boolean swit){
		 try {
             Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
             field.setAccessible(true);
             field.set(dialog, swit);
      } catch (Exception e) {
             e.printStackTrace();
      }
	 }

这里的dialog就是当前的窗口对象,swit就是选择可以关闭窗口或者不能关闭窗口。
他的原理就是去Dialog里面找到mShowing这个隐藏属性,通过这个属性来设置窗口是否可关闭。
⚠当你设置完一个窗口不可隐藏之后,这个设置是永久性的,在之后其他需要关闭窗口的操作,需要设置其可隐藏。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值