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

发布时间 - 2026-01-11 00:37:10    点击率:

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


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在阿里云ECS服务器部署织梦CMS网站?  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何在IIS服务器上快速部署高效网站?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  C语言设计一个闪闪的圣诞树  高防服务器如何保障网站安全无虞?  jQuery 常见小例汇总  如何在建站之星网店版论坛获取技术支持?  详解Android——蓝牙技术 带你实现终端间数据传输  Python面向对象测试方法_mock解析【教程】  如何在Windows 2008云服务器安全搭建网站?  如何在 React 中条件性地遍历数组并渲染元素  如何在腾讯云服务器快速搭建个人网站?  韩国服务器如何优化跨境访问实现高效连接?  Python3.6正式版新特性预览  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Bootstrap整体框架之CSS12栅格系统  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  详解jQuery中基本的动画方法  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  非常酷的网站设计制作软件,酷培ai教育官方网站?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  JS碰撞运动实现方法详解  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  浅析上传头像示例及其注意事项  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  详解vue.js组件化开发实践  如何制作一个表白网站视频,关于勇敢表白的小标题?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  如何在云服务器上快速搭建个人网站?  网站页面设计需要考虑到这些问题  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  如何批量查询域名的建站时间记录?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  如何在局域网内绑定自建网站域名?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何在新浪SAE免费搭建个人博客?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  JS弹性运动实现方法分析  香港服务器建站指南:免备案优势与SEO优化技巧全解析