全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android中AlertDialog 点击按钮后不关闭对话框的功能

这里的问题:当我点击确定按钮,也就是 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实现弹出对话框  # 对话框  # 我也  # 是怎么  # 当我  # 会在  # 请输入  # 而我  # 重写  # 不符合  # 拿出来  # 没有找到  # 后才  # 关闭窗口  # 为了避免  # 还请  # 先看  # 图中  # 解决这个问题  # 大家多多  # 是否符合 


相关文章: 如何在沈阳梯子盘古建站优化SEO排名与功能模块?  网站制作公司,橙子建站是合法的吗?  建站与域名管理如何高效结合?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  建站之家VIP精选网站模板与SEO优化教程整合指南  做企业网站制作流程,企业网站制作基本流程有哪些?  上海网站制作开发公司,上海买房比较好的网站有哪些?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  建站主机服务器选购指南:轻量应用与VPS配置解析  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  Android使用GridView实现日历的简单功能  建站主机无法访问?如何排查域名与服务器问题  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  制作电商网页,电商供应链怎么做?  如何通过商城免费建站系统源码自定义网站主题?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  如何通过虚拟主机空间快速建站?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  太原网站制作公司有哪些,网约车营运证查询官网?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  ,南京靠谱的征婚网站?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  西安专业网站制作公司有哪些,陕西省建行官方网站?  在线制作视频网站免费,都有哪些好的动漫网站?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  制作网站的基本流程,设计网站的软件是什么?  如何快速搭建二级域名独立网站?  ,柠檬视频怎样兑换vip?  网站图片在线制作软件,怎么在图片上做链接?  如何通过VPS搭建网站快速盈利?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  宝塔建站无法访问?如何排查配置与端口问题?  建站之星Pro快速搭建教程:模板选择与功能配置指南  佛山企业网站制作公司有哪些,沟通100网上服务官网?  如何快速查询网站的真实建站时间? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。