AlertDialog 点击按钮后让dialog 不消失
2016-05-04 14:58
387 查看
现在有个需求是在 AlertDialog中点击确认后,发现AlertDialog中的某个输入框的内容为空,需要提示用户,填写后再调用确认后的操作,但是在点击确认后,AlertDialog就消失了,所以需要稍微修改下,让点击后校验不通过时,不让AlertDialog 消失。
代码如下:
核心代码
完整代码如下:
代码如下:
核心代码
try { Field field = dialogInterface.getClass().getSuperclass() .getDeclaredField("mShowing"); field.setAccessible(true); field.set(dialogInterface, false); //要消失时把false 改成true,在确认按钮中加如此代码后,取消按钮也得加,否则取消时不会消失 dialogInterface.dismiss(); } catch (Exception e) { e.printStackTrace(); }
完整代码如下:
new AlertDialog.Builder(mContext).setTitle("拒绝取消理由") .setView(reason) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { if(reason.getText().toString().trim().isEmpty()){ UHelper.showToast(mContext,"请输入拒绝的理由!"); try { Field field = dialogInterface.getClass().getSuperclass() .getDeclaredField("mShowing"); field.setAccessible(true); field.set(dialogInterface, false); dialogInterface.dismiss(); } catch (Exception e) { e.printStackTrace(); } }else{ clickCancelRefuse(bean, reason.getText().toString().trim()); } } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { try { Field field = dialogInterface.getClass().getSuperclass() .getDeclaredField("mShowing"); field.setAccessible(true); field.set(dialogInterface, true); dialogInterface.dismiss(); } catch (Exception e) { e.printStackTrace(); } dialogInterface.dismiss(); } }) .show();
相关文章推荐
- JS字符串格式化
- 身份证验证
- Unity GUI
- Java回调机制(CallBack)详解
- systemctl 命令完全指南
- ES6入门之函数的扩展
- php 之 数据访问
- FZU2234 牧场物语 DP
- 使用Git GUI获取远程项目源代码实例
- Java中 equals 与 == 的区别
- Android各种各样的Drawable-更新中
- 推荐!手把手教你使用Git
- tomcat下的struts2+CDI(openwebbeans)+JPA配置
- android应用开发全程实录-你有多熟悉listview? .
- forward转发 和 和 redirect重定向 的区别
- 解决“只能通过Chrome网上应用商店安装该程序”的方法
- php安装扩展 pdo_mysql.so
- 流程图制作之Giffy Diagrams
- 引入的ajax中异步添加联系人
- 前端资源集合