Android:实现点击AlertDialog上按钮时不关闭对话框
2015-08-21 17:39
701 查看
开发过程中,有时候会有这样的需求:
点击某个按钮之后显示一个对话框,对话框上面有一个输入框,并且有“确认”和“取消”两个按钮。当用户点击确认按钮时,需要对输入框的内容进行判断。如果内容为空则不关闭对话框,并toast提示。
使用AlertDialog.Builder创建对话框时,可以使用builder.setNegativeButton和builder.setPositiveButton两个方法设置取消按钮和确认按钮的点击事件。然而问题在于,只要用户点击了确认按钮或者取消按钮,系统就会自动将对话框关闭。
解决此问题的方法是:
(1)使用builder.setPositiveButton设置确认按钮的文字,但是不添加监听。即builder.setPositiveButton(R.string.main_ok, null);
(2)得到AlertDialog对象:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
(3)获取到对话框上的确认按钮,然后对该按钮添加普通的View.OnClickListener。在用户输入正确的时候,手动调用alertDialog.dismiss()关闭对话框。
[java] view plaincopy在CODE上查看代码片派生到我的代码片
问题完美解决。
点击某个按钮之后显示一个对话框,对话框上面有一个输入框,并且有“确认”和“取消”两个按钮。当用户点击确认按钮时,需要对输入框的内容进行判断。如果内容为空则不关闭对话框,并toast提示。
使用AlertDialog.Builder创建对话框时,可以使用builder.setNegativeButton和builder.setPositiveButton两个方法设置取消按钮和确认按钮的点击事件。然而问题在于,只要用户点击了确认按钮或者取消按钮,系统就会自动将对话框关闭。
解决此问题的方法是:
(1)使用builder.setPositiveButton设置确认按钮的文字,但是不添加监听。即builder.setPositiveButton(R.string.main_ok, null);
(2)得到AlertDialog对象:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
AlertDialog alertDialog = builder.create(); alertDialog.show();
(3)获取到对话框上的确认按钮,然后对该按钮添加普通的View.OnClickListener。在用户输入正确的时候,手动调用alertDialog.dismiss()关闭对话框。
[java] view plaincopy在CODE上查看代码片派生到我的代码片
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开发]对电话号码的判断:
- Android的学习——ubuntu下android5.1源码的make编译
- Android之TabHost布局
- 适应多行长文本的Android TextView
- Android 最火框架XUtils之注解机制详解
- Android GPS 取经纬度
- Android 最火的快速开发框架XUtils
- Android之单选按钮,复选框使用方法汇总
- Android笔记:异步消息处理
- Android笔记:多线程
- Android 开发指南
- Android 浅谈 设计与屏幕适配 【1.6235449734285716】
- Android应用开发--颜色拾取器. color picker
- Android 自动注释,导入模板文件
- AndroidManifest.xml
- android TextView中文字通过SpannableString设置属性
- Android TextView 一些字体颜色、大小设置属性
- android 点击拨打电话发短信
- 实现带清除效果的EditText
- Ubuntu下FFmpeg-Android-master编译过程