在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这个隐藏属性,通过这个属性来设置窗口是否可关闭。
⚠当你设置完一个窗口不可隐藏之后,这个设置是永久性的,在之后其他需要关闭窗口的操作,需要设置其可隐藏。
本文详细介绍了在Android开发中通过修改Dialog内部属性实现窗口不可关闭的方法,包括设置Dialog是否可隐藏的功能及其原理,以及如何在触发事件内进行操作而不关闭窗口,适用于需要在操作过程中保持对话框显示的场景。

被折叠的 条评论
为什么被折叠?



