Android实现点击AlertDialog上按钮时不关闭对话框的方法
作者:books1958 发布时间:2022-07-28 07:39:51
标签:Android,AlertDialog
本文实例讲述了Android实现点击AlertDialog上按钮时不关闭对话框的方法。分享给大家供大家参考。具体如下:
开发过程中,有时候会有这样的需求:
点击某个按钮之后显示一个对话框,对话框上面有一个输入框,并且有“确认”和“取消”两个按钮。当用户点击确认按钮时,需要对输入框的内容进行判断。如果内容为空则不关闭对话框,并toast提示。
使用AlertDialog.Builder创建对话框时,可以使用builder.setNegativeButton和builder.setPositiveButton两个方法设置取消按钮和确认按钮的点击事件。然而问题在于,只要用户点击了确认按钮或者取消按钮,系统就会自动将对话框关闭。
解决此问题的方法是:
(1)使用builder.setPositiveButton设置确认按钮的文字,但是不添加监听。即:
builder.setPositiveButton(R.string.main_ok, null);
(2)得到AlertDialog对象:
AlertDialog alertDialog = builder.create();
alertDialog.show();
(3)获取到对话框上的确认按钮,然后对该按钮添加普通的View.OnClickListener。在用户输入正确的时候,手动调用alertDialog.dismiss()关闭对话框。
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String cardNum = cardNumET.getText().toString().trim();
if (cardNum.length() == 0) {
Utility.showToast(mActivity, "请输入编号");
return;
}
//发送
sendProfile(cardNum);
alertDialog.dismiss();
}
});
问题完美解决。
希望本文所述对大家的Android程序设计有所帮助。


猜你喜欢
- 项目分为前台和后台,前台主要为学生角色、后台主要为管理员角色。管理员添加试题和发布试卷,学生负责在线考试、在线查看成绩和错题记录列表等。管理
- 定时器问题定时器属于基本的基础组件,不管是用户空间的程序开发,还是内核空间的程序开发,很多时候都需要有定时器作为基础组件的支持。一个定时器的
- 什么是接口:接口是一系列方法的声明,是一些方法特征的集合注意:在接口中只有方法名,没有方法体!关键字:interface(创建接口), im
- 在项目中选择器的使用是非常多的,以下是本人在项目中的一些常用的背景选择器的写法带边框下划线背景选择器效果图:上面布局中放了10个CheckB
- 把C#编译成DLL或者Axtive控件,再由C调用!比如使用C++调用C#的DLL。SwfDotNet是.net下输出flash的类库。Sw
- 一、deleteById 和 delete为什么要把这两个方法放在一起呢?我们先看源码再说deleteById(Id id)(通过id进行删
- 本文实例为大家分享了C#+EmguCV使用摄像头读取、保存视频的具体代码,供大家参考,具体内容如下在Emgucv中调用摄像头需要用到Vide
- Java中IO的模型分为三种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。BIO【同步阻塞】在JDK1.4出来之前,我们建立网
- 这里使用的是spring-security和原生的jasig cas包来进行整合,为什么没有直接使用spring提供的spring-secu
- 首先在xml文件添加Spinner控件:<Spinner &n
- servlet、filter、listener、interceptor之间的区别和联系一、概念1.servlet:servlet是一种运行服
- 运行本实例,将显示一个用户登录界面,输入用户名(hpuacm)和密码(1111)后,单击"登录"按钮,将弹出如下图所示的
- 本文研究的主要是优化MyBatis配置文件中的配置的相关内容,具体介绍如下。一、连接数据库的配置单独放在一个properties文件中之前,
- Visual Studio 2022 默认.net framework4.8,而4.6~4.7版本的.net framework可以通过方法
- What will be removed If you click Clear Data Button in the System Appl
- Math.PI 记录的圆周率Math.E 记录e的常量Math中还有一些类似的常量,都是一些工程数学常用量。Math.ab
- #include<iostream>using namespace std;//非递归求解所有的子集void fun(int a
- 配置文件概述:应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改
- 本文研究的主要是Java数组的扩容的相关代码示例,具体实现过程如下所示。在写程序的过程中,我们常常会碰见数组空间不够用的情况,比如我已经初始
- 代码如下:import java.io.BufferedReader;import java.io.DataOutputStream;imp