Android Alert Dialog解决点击按钮对话框不关闭/的问题
来源:互联网 发布:张艺谋电影风格知乎 编辑:程序博客网 时间:2024/06/05 04:04
当我们在用到Android alertDialog创建对话框 的时候,我们会遇到一个问题就是:我们添加的按钮不论是用setNegativeButton还是用setPositiveButton添加的按钮,点击的时候,都会关闭对话框,但是我们的一 些实际需求,就需要保留这个对话框不动,例如输入校验码,密码之类的校验问题,如果用户输入错误,而关闭后弹出对话框,就很别扭了。
在网上找了一下,原来在源码中有一个boolean变量是控件对话框的关闭与否的mShowing变量,我们只需要利用反射改变这个变量就可以控制我们的对话框是不是关闭了。所以,我们可以通过手动设置mShowing的值来达到目的。
不关闭对话框:
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);
} catch (Exception e) {
e.printStackTrace();
}
关闭对话框:
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, true);
} catch (Exception e) {
e.printStackTrace();
}
具体代码:
new AlertDialog.Builder(Bookstore.getInstance())
.setTitle(r.getString(“提示”)
.setMessage(“不能打开”)
.setPositiveButton(“确定”), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try {//下面三句控制弹框的关闭
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog,true);//true表示要关闭
} catch (Exception e) {
e.printStackTrace();
}
}
}).show();
转自:http://longshuai2007.blog.163.com/blog/static/14209441420111130104435932/
- Android Alert Dialog解决点击按钮对话框不关闭的问题
- Android Alert Dialog解决点击按钮对话框不关闭的问题
- Android Alert Dialog解决点击按钮对话框不关闭/的问题
- Android Alert Dialog解决点击按钮对话框不关闭/的问题
- Android Alert Dialog点击按钮对话框不关闭
- Android Dialog点击按钮不关闭对话框
- Android Dialog 点击对话框外部区域不关闭的设置
- Easyui dialog对话框遮挡关闭按钮问题的解决
- 点击dialog按钮不关闭dialog
- Android——点击对话框上按钮不关闭对话框
- Android——点击对话框上按钮不关闭对话框
- Android——点击对话框上按钮不关闭对话框
- Android——点击对话框上按钮不关闭对话框
- Android Dialog点击按钮不关闭,控制窗口的显示和关闭
- android Dialog的确定按钮点击后不取消对话框
- android Dialog的确定按钮点击后不取消对话框
- Android Dialog 点击对话框外部区域不关闭的设置,设置view.
- 【Android】AlertDialog点击按钮后不自动关闭对话框
- php异常处理--try,throw,catch
- 结合源码分析HBase相关操作流程
- 花5分钟用php做个图片采集器
- 使用OCCI访问Oracle数据库(2)
- spring mvc 返回json 几个关键配置
- Android Alert Dialog解决点击按钮对话框不关闭/的问题
- 从零开始学习jQuery (六) AJAX快餐
- JVM性能调优(转)
- 调试dijkstra代码遇到的问题(总结)
- bF9rb雪靴台灣 gi3e 9Fq
- python的enumerate在for循环中的方便之处
- JUnit的使用
- NGUI制作背包系统
- php--oop笔记(一)