美文网首页
如何让AlertDialog点击确定按钮时不消失

如何让AlertDialog点击确定按钮时不消失

作者: 孤城99 | 来源:发表于2018-01-30 10:35 被阅读0次

使用场景:

在AlertDialog弹出框上不论是用setNegativeButton还是用setPositiveButton添加的按钮,在点击的时候,都会默认关闭对话框,但是我们的一 些实际需求,是需要让AlertDialog不消失,例如输入校验码,密码之类的校验问题,如果用户输入错误,而关闭后弹出对话框,就麻烦了。

解决方法:

 在AlertDialog按钮的点击事件中添加如下方法:
 try  {
    Field field = dialog.getClass() .getSuperclass().getDeclaredField("mShowing" );
    field.setAccessible( true );
    //   将mShowing变量设为false,表示对话框已关闭 
    field.set(dialog, false );
    dialog.dismiss();
} catch (Exception e) {
}

注意事项:

将上面的代码加到哪个按钮的单击事件代码中,哪个按钮就再也无法关闭对话框了。如果要关闭对话框,只需再将 mShowing 设为 true 即可。要注意的是,在一个按钮里设置了 mShowing 变量,也会影响另一个按钮的关闭对话框功能,因此,需要在每一个按钮的单击事件里都设置 mShowing 变量的值。
转载自:http://blog.csdn.net/abby_dcy/article/details/6049535

相关文章

网友评论

      本文标题:如何让AlertDialog点击确定按钮时不消失

      本文链接:https://www.haomeiwen.com/subject/fbmqzxtx.html