
这里的问题:当我点击确定按钮,也就是 AlertDialog 里的 PositiveButton 的时候,我们需要判断用户是输入是否符合我们的预期,如果不符合通常提示用户重写输入,且不关闭当前的对话框,但上图中点击按钮后会自动的关闭窗口。
先看原来的这个是怎么写的:
private void openDialog() {
LinearLayout linearLayout = (LinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.change_password_dialog, null);
final EditText originPasswordEt = (EditText) linearLayout.findViewById(R.id.origin_password);
TextView forgetPassword = (TextView) linearLayout.findViewById(R.id.forget_password);
final AlertDialog dialog = new AlertDialog.Builder(getContext())
.setView(linearLayout)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String originPassword = originPasswordEt.getText().toString().trim();
//传到后台
}
})
.create();
dialog.show();
}
虽然图片里和代码的并不是同一个,但问题是一样的
在 setPositiveButton 方法中,即使我们没有调用 dialog.dismiss()
但对话框还是会自动的关闭,就算我们在 onClick 里判断输入的内容,错误的提示也会在窗口关闭后才出现。
在 AlertDialog 提供的 API 中我也没有找到可以设置的地方,如果有还请告知。而我解决这个问题的办法:
final AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setTitle(msg)
.setView(layout)
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setPositiveButton("submit",null)
.setCancelable(true)
.create();
dialog.show();
//为了避免点击 positive 按钮后直接关闭 dialog,把点击事件拿出来设置
dialog.getButton(AlertDialog.BUTTON_POSITIVE)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Pattern pattern = Pattern.compile("[0-9]*");
Matcher matcher = pattern.matcher(editText.getText());
if (!matcher.matches()){
showToast("请输入正确的 ID");
break;
}
dialog.dismiss();
}
}
});
setPositiveButton("submit",null) 监听事件传入 null
在调用 dialog.show() 后再设置 Button 的点击事件,否则 getButton() 会返回空
这样在我们手动调用 dialog.dismiss() 之前,对话框是不会关闭的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# alertdialog
# 不关闭
# 点击不消失
# Android实现点击AlertDialog上按钮时不关闭对话框的方法
# Android中AlertDialog各种对话框的用法实例详解
# Android使用AlertDialog实现的信息列表单选、多选对话框功能
# Android修改源码解决Alertdialog触摸对话框边缘消失的问题
# Android 自定义AlertDialog对话框样式
# Android对话框AlertDialog.Builder使用方法详解
# ANDROID中自定义对话框AlertDialog使用示例
# android自定义AlertDialog对话框
# Android Alertdialog(实现警告对话框)
# Android开发之AlertDialog实现弹出对话框
# 对话框
# 我也
# 是怎么
# 当我
# 会在
# 请输入
# 而我
# 重写
# 不符合
# 拿出来
# 没有找到
# 后才
# 关闭窗口
# 为了避免
# 还请
# 先看
# 图中
# 解决这个问题
# 大家多多
# 是否符合
相关文章:
如何安全更换建站之星模板并保留数据?
Swift中swift中的switch 语句
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
如何选择高效便捷的WAP商城建站系统?
建站之星24小时客服电话如何获取?
广州商城建站系统开发成本与周期如何控制?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
红河网站制作公司,红河事业单位身份证如何上传?
香港服务器租用费用高吗?如何避免常见误区?
宝塔新建站点为何无法访问?如何排查?
郑州企业网站制作公司,郑州招聘网站有哪些?
如何确认建站备案号应放置的具体位置?
如何访问已购建站主机并解决登录问题?
已有域名和空间,如何快速搭建网站?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
音乐网站服务器如何优化API响应速度?
建站之星2.7模板快速切换与批量管理功能操作指南
如何在橙子建站中快速调整背景颜色?
小程序网站制作需要准备什么资料,如何制作小程序?
开心动漫网站制作软件下载,十分开心动画为何停播?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
婚礼视频制作网站,学习*后期制作的网站有哪些?
建站org新手必看:2024最新搭建流程与模板选择技巧
如何通过FTP服务器快速搭建网站?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
linux top下的 minerd 木马清除方法
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
建站VPS推荐:2025年高性能服务器配置指南
七夕网站制作视频,七夕大促活动怎么报名?
如何在宝塔面板中修改默认建站目录?
建站之星后台密码遗忘如何找回?
,巨量百应是干嘛的?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
网站图片在线制作软件,怎么在图片上做链接?
公众号网站制作网页,微信公众号怎么制作?
网站app免费制作软件,能免费看各大网站视频的手机app?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
西安专业网站制作公司有哪些,陕西省建行官方网站?
教程网站设计制作软件,怎么创建自己的一个网站?
如何快速配置高效服务器建站软件?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
建站之星如何快速更换网站模板?
如何在建站之星绑定自定义域名?
高端云建站费用究竟需要多少预算?
如何用景安虚拟主机手机版绑定域名建站?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
表情包在线制作网站免费,表情包怎么弄?
如何在云主机上快速搭建多站点网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。