弹窗提示工具类 DialogUtil
2020-06-09 10:09
106 查看
自定义弹窗提示类
项目 Demo:ShowDialog
- 日期选择对话框
- 时间选择对话框
- 普通对话框
- 下拉框对话框
- 输入框对话框
- ListView对话框
import android.app.Activity; import android.app.DatePickerDialog; import android.app.TimePickerDialog; import android.content.Context; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import android.view.KeyEvent; import android.view.View; import android.widget.DatePicker; import android.widget.TimePicker; import android.widget.Toast; import java.util.Calendar; import java.util.Locale; import java.util.Timer; import java.util.TimerTask; public class DialogUtil { /** * 日期选择 * * @param activity */ public static void showDatePickerDialog(Activity activity, final MyOnDateSetListener listener) { Calendar calendar = Calendar.getInstance(Locale.CHINA); new DatePickerDialog(activity, 0, new DatePickerDialog.OnDateSetListener() { // 绑定监听器(How the parent is notified that the date is set.) @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Calendar c = Calendar.getInstance(); c.set(year, monthOfYear, dayOfMonth); listener.onDateSet(DateUtil.calendarToStr(c), c); } } , calendar.get(Calendar.YEAR) , calendar.get(Calendar.MONTH) , calendar.get(Calendar.DAY_OF_MONTH)).show(); } /** * 每次打开日期选择器,都是上一次选择的日期 */ public static void showDatePickerDialog(Activity activity, Calendar calendar, final MyOnDateSetListener listener) { if (calendar == null) { calendar = Calendar.getInstance(Locale.CHINA); } new DatePickerDialog(activity, 0, new DatePickerDialog.OnDateSetListener() { // 绑定监听器(How the parent is notified that the date is set.) @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Calendar c = Calendar.getInstance(); c.set(year, monthOfYear, dayOfMonth); listener.onDateSet(DateUtil.calendarToStr(c), c); } } , calendar.get(Calendar.YEAR) , calendar.get(Calendar.MONTH) , calendar.get(Calendar.DAY_OF_MONTH)).show(); } public interface MyOnDateSetListener { void onDateSet(String formDate, Calendar calendar); } /** * 时间选择 */ public static void showTimePickerDialog(Activity activity, final MyOnTimeSetListener listener) { Calendar calendar = Calendar.getInstance(Locale.CHINA); new TimePickerDialog( activity, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(System.currentTimeMillis()); c.set(Calendar.HOUR_OF_DAY, hourOfDay); c.set(Calendar.MINUTE, minute); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); listener.onTimeSet(DateUtil.calendarToStrTime(c), c); } } ,calendar.get(Calendar.HOUR_OF_DAY) ,calendar.get(Calendar.MINUTE),true).show(); } public interface MyOnTimeSetListener { void onTimeSet(String formDate, Calendar calendar); } public static AlertDialog showInputDialog(final Context context, boolean cancelable, String title, View contentView, DialogInterface.OnClickListener listener) { AlertDialog.Builder customizeDialog = new AlertDialog.Builder(context); customizeDialog.setTitle(title); customizeDialog.setView(contentView); customizeDialog.setPositiveButton("确定", listener); customizeDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { if (context instanceof Activity) { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { KeyboardUtil.hideKeyboard((Activity) context); } }, 100); } } }); AlertDialog alertDialog = customizeDialog.create(); if (!cancelable) { alertDialog.setCancelable(false); alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SEARCH) { return true; } else { return false; //默认返回 false } } }); } alertDialog.show(); return alertDialog; } /** * 显示一个普通对话框 */ public static AlertDialog showNormalDialog(Context context, boolean cancelable, String title, String msg, String positiveString, DialogInterface.OnClickListener listener, String negativeString, DialogInterface.OnClickListener negativeListener) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(title); builder.setMessage(msg); builder.setPositiveButton(positiveString, listener); builder.setNegativeButton(negativeString, negativeListener); if (!cancelable) { AlertDialog alertDialog = builder.create(); alertDialog.setCancelable(false); alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SEARCH) { return true; } else { return false; //默认返回 false } } }); alertDialog.show(); return alertDialog; } return builder.show(); } /** * 显示一个下拉框对话框 */ public static AlertDialog showSpinnerDialog(final Context context, boolean cancelable, String title, View contentView, DialogInterface.OnClickListener listener) { AlertDialog.Builder customizeDialog = new AlertDialog.Builder(context); customizeDialog.setTitle(title); customizeDialog.setView(contentView); customizeDialog.setPositiveButton("确定", listener); customizeDialog.setNeutralButton("取消", listener); customizeDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { if (context instanceof Activity) { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { KeyboardUtil.hideKeyboard((Activity) context); } }, 100); } } }); AlertDialog alertDialog = customizeDialog.create(); if (!cancelable) { alertDialog.setCancelable(false); alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SEARCH) { return true; } else { return false; //默认返回 false } } }); } alertDialog.show(); return alertDialog; } /** * 显示一个ListView对话框 */ public static AlertDialog showListDialog(final Context context, boolean cancelable, String title, View contentView, DialogInterface.OnClickListener listener) { AlertDialog.Builder customizeDialog = new AlertDialog.Builder(context); customizeDialog.setTitle(title); customizeDialog.setView(contentView); customizeDialog.setPositiveButton("确定", listener); customizeDialog.setNeutralButton("取消", listener); customizeDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { if (context instanceof Activity) { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { KeyboardUtil.hideKeyboard((Activity) context); } }, 100); } } }); AlertDialog alertDialog = customizeDialog.create(); if (!cancelable) { alertDialog.setCancelable(false); alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SEARCH) { return true; } else { return false; //默认返回 false } } }); } alertDialog.show(); return alertDialog; } }
-
日期选择对话框效果
-
时间选择对话框效果
-
普通对话框效果
-
下拉框对话框效果
-
输入对话框效果
-
ListView对话框效果
相关文章推荐
- java使用hutool工具类实现文件下载且自动弹窗提示保存文件名(不乱码)及地址
- Android-短信弹窗提示
- selenium获取弹窗提示
- Swing 中各种提示框的工具类
- 提示弹窗
- MyEclipse弹窗提示“could not create the java virtual machine”解决办法
- PHP 返回数组后处理方法(开户成功后弹窗提示)
- EasyUi弹窗提示!
- 安卓常用工具类-ToastUtils【提示工具类】
- 【Android工具类】用户输入非法内容时的震动与动画提示——EditTextShakeHelper工具类介绍
- 点击A标签时,先弹窗提示,再跳转到目标页面,HTML前台代码
- js实现删除文章弹窗提示是否确认
- ASP.NET利用ajax实现弹窗报警提示,邮件到达示例
- windows大多数的弹窗提示内容是可以复制的(我们主要用于报错内容复制粘贴去百度)
- 安装LoadRunner 11时弹窗提示"Micosoft Visual C++ 2005 SP1 可再发行组件包(X86):'命令行选项语法错误。键入命令 / ? 可获得帮助信息'"。
- Android Dialog弹窗提示,在4.4.4和5.1中会默认显示Dialog的title
- android 弹窗提示的使用
- ionic中的ToastController小弹窗用法。提示信息。toast长时间不消失解决方案
- Mac 之 Alfred 3 启动后,都会提示“Alfred 3 想访问您的通讯录”弹窗问题
- .net前台页面提示弹窗