弹窗提示工具类 DialogUtil

自定义弹窗提示类

项目 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对话框效果
    在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_唐宋元明清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值