Android Alert Dialog解决点击按钮对话框不关闭的问题
2012-11-06 11:50
597 查看
转自:
/article/2781414.html
当我们在用到Android alertDialog创建对话框 的时候,我们会遇到一个问题就是:我们添加的按钮不论是用setNegativeButton还是用setPositiveButton添加的按钮,点击的时候,都会关闭对话框,但是我们的一
些实际需求,就需要保留这个对话框不动,例如输入校验码,密码之类的校验问题,如果用户输入错误,而关闭后弹出对话框,就很别扭了。在网上找了一下,原来在源码中有一个boolean变量是控件对话框的关闭与否的mShowing变量,我们只需要利用反射改变这个变量就可以控制我们的对话框是不是关闭了。所以,我们可以通过手动设置mShowing的值来达到目的。代码如下:
如果点击保持对话框:
[java] view
plaincopy
private void keepDialog(DialogInterface dialog) {
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);
} catch (Exception e) {
e.printStackTrace();
}
}
相信上面有一定java基础的都能看懂是写的什么,反射这里不多解释,很简单。
mShowing是Dialog类的一个成员变量,在上面的方法中改变之后会影响别的按钮,如现在点击“取消”按钮将不能关闭对话框,解决办法在“取消”的onClick事件中再改变mShowing的值,如下:
如果点击关闭对话框:
[java] view
plaincopy
private void distoryDialog(DialogInterface dialog){
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, true);
} catch (Exception e) {
e.printStackTrace();
}
}
/article/2781414.html
当我们在用到Android alertDialog创建对话框 的时候,我们会遇到一个问题就是:我们添加的按钮不论是用setNegativeButton还是用setPositiveButton添加的按钮,点击的时候,都会关闭对话框,但是我们的一
些实际需求,就需要保留这个对话框不动,例如输入校验码,密码之类的校验问题,如果用户输入错误,而关闭后弹出对话框,就很别扭了。在网上找了一下,原来在源码中有一个boolean变量是控件对话框的关闭与否的mShowing变量,我们只需要利用反射改变这个变量就可以控制我们的对话框是不是关闭了。所以,我们可以通过手动设置mShowing的值来达到目的。代码如下:
如果点击保持对话框:
[java] view
plaincopy
private void keepDialog(DialogInterface dialog) {
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);
} catch (Exception e) {
e.printStackTrace();
}
}
相信上面有一定java基础的都能看懂是写的什么,反射这里不多解释,很简单。
mShowing是Dialog类的一个成员变量,在上面的方法中改变之后会影响别的按钮,如现在点击“取消”按钮将不能关闭对话框,解决办法在“取消”的onClick事件中再改变mShowing的值,如下:
如果点击关闭对话框:
[java] view
plaincopy
private void distoryDialog(DialogInterface dialog){
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, true);
} catch (Exception e) {
e.printStackTrace();
}
}
相关文章推荐
- Android Alert Dialog解决点击按钮对话框不关闭/的问题
- Android Alert Dialog解决点击按钮对话框不关闭/的问题
- Android Alert Dialog解决点击按钮对话框不关闭的问题
- Android Alert Dialog解决点击按钮对话框不关闭/的问题
- Android Alert Dialog点击按钮对话框不关闭
- android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
- android 自定义ListView 使其带单选框按钮,并解决item点击不响应的问题
- 解决Android按住空白区域,导致点击其他按钮无法触发点击事件的问题
- Android Activity使用Dialog样式导致点击空白处自动关闭的问题解决
- android中ListView点击和里边按钮点击不能同时生效问题解决
- Android下关于AlertDialog点击 确定或者取消按钮 对话框自动消失的 解决办法
- android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
- 解决android中点击对话框外部,对话框消失的问题
- Android解决按钮重复点击问题
- 解决android中点击对话框外部,对话框消失的问题
- Android对话框防止点击确定按钮时关闭
- Android中AlertDialog 点击按钮后不关闭对话框的功能
- 【Android】AlertDialog点击按钮后不自动关闭对话框
- Android:实现点击AlertDialog上按钮时不关闭对话框
- android 自定义ListView 使其带单选框按钮,并解决item点击不响应的问题