美文网首页安卓安卓资源收集Android Class
Android开发中对话框辅助类——DialogHelper

Android开发中对话框辅助类——DialogHelper

作者: code小生 | 来源:发表于2016-10-28 11:37 被阅读1534次

    写在前面:
    对话框在平时的开发工作中使用率很频繁,但是很多开发者每次使用都去写一堆代码,如此,不单单效率不高,而且代码也不优...为此,写了简单的封装。

    效果如:

    DialogHelperDemo动图.gif

    关键类DialogHelper.java

    public class DialogHelper {
    
        /***
         * 获取一个dialog对象,进行相关操作
         *
         * @param context
         * @return
         */
        public static AlertDialog.Builder getDialog(Context context) {
            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            return builder;
        }
    
        /***
         * 获取一个进度对话框(耗时操作使用)
         *
         * @param context
         * @param message
         * @return
         */
        public static ProgressDialog getWaitDialog(Context context, String message) {
            ProgressDialog waitDialog = new ProgressDialog(context);
            if (!TextUtils.isEmpty(message)) {
                waitDialog.setMessage(message);
            }
            return waitDialog;
        }
    
        public static AlertDialog.Builder getMessageDialog(Context context, String message, DialogInterface.OnClickListener onClickListener) {
            AlertDialog.Builder builder = getDialog(context);
            builder.setMessage(message);
            builder.setPositiveButton("确定", onClickListener);
            return builder;
        }
    
        /**
         * 获取一个信息对话框
         *
         * @param context
         * @param message
         * @return
         */
        public static AlertDialog.Builder getMessageDialog(Context context, String message) {
            return getMessageDialog(context, message, null);
        }
    
        public static AlertDialog.Builder getSelectDialog(Context context, String title, String[] arrays, DialogInterface.OnClickListener onClickListener) {
            AlertDialog.Builder builder = getDialog(context);
            builder.setItems(arrays, onClickListener);
            if (!TextUtils.isEmpty(title)) {
                builder.setTitle(title);
            }
            builder.setPositiveButton("取消", null);
            return builder;
        }
    
        /**
         * 选择对话框
         *
         * @param context
         * @param arrays
         * @param onClickListener
         * @return
         */
        public static AlertDialog.Builder getSelectDialog(Context context, String[] arrays, DialogInterface.OnClickListener onClickListener) {
            return getSelectDialog(context, "", arrays, onClickListener);
        }
    
        /**
         * 可设置内容、确定监听对话框
         *
         * @param context
         * @param message
         * @param onClickListener
         * @return
         */
        public static AlertDialog.Builder getConfirmDialog(Context context, String message, DialogInterface.OnClickListener onClickListener) {
            AlertDialog.Builder builder = getDialog(context);
            builder.setMessage(Html.fromHtml(message));
            builder.setPositiveButton("确定", onClickListener);
            builder.setNegativeButton("取消", null);
            return builder;
        }
    
        /**
         * 可设置内容、两个按钮监听对话框
         *
         * @param context
         * @param message
         * @param onOkClickListener
         * @param onCancleClickListener
         * @return
         */
        public static AlertDialog.Builder getConfirmDialog(Context context, String message, DialogInterface.OnClickListener onOkClickListener, DialogInterface.OnClickListener onCancleClickListener) {
            AlertDialog.Builder builder = getDialog(context);
            builder.setMessage(message);
            builder.setPositiveButton("确定", onOkClickListener);
            builder.setNegativeButton("取消", onCancleClickListener);
            return builder;
        }
    
        /**
         * 可设置标题、内容、按钮文字,监听的对话框
         *
         * @param context
         * @param title
         * @param message
         * @param okString
         * @param cancleString
         * @param onOkClickListener
         * @param onCancleClickListener
         * @return
         */
        public static AlertDialog.Builder getConfirmDialog(Context context,
                                                           String title,
                                                           String message,
                                                           String okString,
                                                           String cancleString,
                                                           DialogInterface.OnClickListener onOkClickListener,
                                                           DialogInterface.OnClickListener onCancleClickListener) {
            AlertDialog.Builder builder = getDialog(context);
            if (!TextUtils.isEmpty(title)) {
                builder.setTitle(title);
            }
            builder.setMessage(message);
            builder.setPositiveButton(okString, onOkClickListener);
            builder.setNegativeButton(cancleString, onCancleClickListener);
            return builder;
        }
    
        /**
         * 创建可自定义对话框内容和按钮文字的对话框
         *
         * @param context
         * @param message               对话框内容
         * @param okString              确定按钮文字
         * @param cancleString          取消按钮文字
         * @param onOkClickListener     确定监听
         * @param onCancleClickListener 取消监听
         * @return
         */
        public static AlertDialog.Builder getConfirmDialog(Context context,
                                                           String message,
                                                           String okString,
                                                           String cancleString,
                                                           DialogInterface.OnClickListener onOkClickListener,
                                                           DialogInterface.OnClickListener onCancleClickListener) {
            return getConfirmDialog(context, "", message, okString, cancleString, onOkClickListener, onCancleClickListener);
        }
    
        public static AlertDialog.Builder getSingleChoiceDialog(Context context, String title, String[] arrays, int selectIndex, DialogInterface.OnClickListener onClickListener) {
            AlertDialog.Builder builder = getDialog(context);
            builder.setSingleChoiceItems(arrays, selectIndex, onClickListener);
            if (!TextUtils.isEmpty(title)) {
                builder.setTitle(title);
            }
            builder.setNegativeButton("取消", null);
            return builder;
        }
    
        /**
         * 单选对话框
         *
         * @param context
         * @param arrays          可供选择的数据
         * @param selectIndex     默认选中的索引
         * @param onClickListener
         * @return
         */
        public static AlertDialog.Builder getSingleChoiceDialog(Context context, String[] arrays, int selectIndex, DialogInterface.OnClickListener onClickListener) {
            return getSingleChoiceDialog(context, "", arrays, selectIndex, onClickListener);
        }
    }
    

    注:效果图中的每个对话框弹出都是随机的,所以会看到重复的,还有一个只显示透明效果的,是因为只是获取了对话框对象,视图可供自定义。

    关注微信公众号,获取demo,欢迎交流

    个人微信公众号.jpg

    注:个人创建了专题——《Android开发资源经验分享》,欢迎投稿,共同学习。

    相关文章

      网友评论

        本文标题:Android开发中对话框辅助类——DialogHelper

        本文链接:https://www.haomeiwen.com/subject/srxeuttx.html