移动安卓端AlertDialog的工具类

前言:在我们学习安卓的入门阶段时,我们就已经会接触到安卓上的对话提示框AlertDialog,安卓原生的对话框是一个非常简单直白的一个对话框。那么当我们在实际的开发过程中,必定需要不同种类的对话提示框时,我们又该如何操作呢。此外AlertDialog的很多代码我们可以通过提前封装的方式,减少在页面中的代码量,使页面更加整洁,所以我们需要一个封装好的AlertDialog工具类来处理这些繁琐的事情。

1. 无标题基础对话框
这种是我们最基本见识到的对话提示框,主要用于给到用户一个不可忽略的提示作用,上代码:

//无标题基础对话框
public static AlertDialog showBasicNoTitle(Context context, String message, final MyDialogOnClickListener myDialogOnClickListener) {
        AlertDialog alertDialog = new AlertDialog.Builder(context)
                .setMessage(message)
                .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (myDialogOnClickListener != null)
                            myDialogOnClickListener.onConfirm();
                    }
                })
                .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (myDialogOnClickListener != null)
                            myDialogOnClickListener.onCancel();
                    }
                })
                .create();
        alertDialog.show();
        return alertDialog;
    }
   
 /**
  * Dialog按钮点击事件接口.
  */
    public interface MyDialogOnClickListener {
        void onCancel();
        void onConfirm();
    }

//**********************************//
//需要调用时
 DialogUtil.showBasicNoTitle(this, "这里可以输入想要的内容", new DialogUtil.MyDialogOnClickListener() {
            @Override
            public void onCancel() {
                 //点击取消后执行的逻辑
            }

            @Override
            public void onConfirm() {
                 //点击确定后执行的逻辑
            }
        });

效果图:
在这里插入图片描述

2. 有标题的基本对话框
这类对话框会增加一行标题行,能给到用户更好的交互效果

//有标题的基本对话框
public static AlertDialog showBasic(Context context, String title, String message, final MyDialogOnClickListener myDialogOnClickListener) {
        AlertDialog alertDialog =new AlertDialog.Builder(context)
                .setTitle(title)
                .setMessage(message)
                .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (myDialogOnClickListener != null)
                            myDialogOnClickListener.onConfirm();
                    }
                })
                .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (myDialogOnClickListener != null)
                            myDialogOnClickListener.onCancel();
                    }
                })
                .create();
        alertDialog.show();
        return alertDialog;
    }
    
/**
 * Dialog按钮点击事件接口.
 */
    public interface MyDialogOnClickListener {
        void onCancel();
        void onConfirm();
    }

//**********************************//
//需要调用时
DialogUtil.showBasic(this,"随便一个标题", "这里可以输入想要的内容", new DialogUtil.MyDialogOnClickListener() {
            @Override
            public void onCancel() {
                 //点击取消后执行的逻辑
            }

            @Override
            public void onConfirm() {
                 //点击确定后执行的逻辑
            }
        });

效果图:
在这里插入图片描述
3. 自定义按钮名称的基本对话框
这类对话框可以自定义下方“确定”和“取消”按钮的名称,已方便适用于不同的业务场景

//自定义按钮名称的基本对话框
public static AlertDialog showBasic(Context context, String title, String message,String confirm,String cancel,final MyDialogOnClickListener myDialogOnClickListener) {
    AlertDialog alertDialog =new AlertDialog.Builder(context)
            .setTitle(title)
            .setMessage(message)
            .setPositiveButton(confirm, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    if (myDialogOnClickListener != null)
                        myDialogOnClickListener.onConfirm();
                }
            })
            .setNegativeButton(cancel, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    if (myDialogOnClickListener != null)
                        myDialogOnClickListener.onCancel();
                }
            })
            .create();
    alertDialog.show();
    return alertDialog;
}

/**
 * Dialog按钮点击事件接口.
 */
    public interface MyDialogOnClickListener {
        void onCancel();
        void onConfirm();
    }

//**********************************//
//需要调用时
DialogUtil.showBasic(this,"随便一个标题", "这里可以输入想要的内容","用户同意的按钮",
                "用户不同意的按钮",new DialogUtil.MyDialogOnClickListener() {
            @Override
            public void onCancel() {
                 //点击取消后执行的逻辑
            }

            @Override
            public void onConfirm() {
                 //点击确定后执行的逻辑
            }
        });

效果图:
在这里插入图片描述
目前先更新这几种对话框,后面会放上一些操作性的对话框,比如带输入框的对话框,单选对话框,多选对话框,带图标,进度条对话框等等,尽情期待!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐