安卓UI

系统弹出对话框工具类

2019-01-22  本文已影响11人  NoBugException
/**
 * 系统弹出对话框工具类
 */
public class AlertDialogUtil {
    /* 取消按钮的文字  确定按钮的文字 */
    private String mNegBtnText, mPosBtnText;
    /* 是否可以按返回键关闭 */
    private boolean cancelable;
    private Context mContext;
    /* 取消按钮的点击监听 */
    private OnAlertNegativeListener mNegativeListener;
    /* 确定按钮的点击监听 */
    private OnAlertPositiveListener mPositiveListener;

    public static AlertDialogUtil newInstance(@NonNull Context context) {
        return new AlertDialogUtil(context);
    }

    private AlertDialogUtil(@NonNull Context context) {
        super();
        this.mContext = context;
        cancelable = false;
        mNegBtnText = "取消";
        mPosBtnText = "确定";
    }

    /**
     * 显示对话框
     *
     * @param message 对话框的内容
     */
    public void showDialog(String message) {
        AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
        dialog.setMessage(message)
                .setCancelable(cancelable)
                .setPositiveButton(mPosBtnText, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        if (mPositiveListener != null) {
                            mPositiveListener.onPositiveClick(i);
                        }
                    }
                })
                .setNegativeButton(mNegBtnText, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        if (mNegativeListener != null) {
                            mNegativeListener.onNegativeClick(i);
                        }
                    }
                }).show();
    }

    /**
     * 是否可以按返回键关闭
     *
     * @param cancelable {@code true}: 可以<br>{@code false}: 不可以
     * @return AlertDialogUtil 类
     */
    public AlertDialogUtil setCancelable(boolean cancelable) {
        this.cancelable = cancelable;
        return this;
    }

    /**
     * 设置取消按钮的文字
     *
     * @param text 取消按钮的文字
     * @return AlertDialogUtil 类
     */
    public AlertDialogUtil negativeText(String text) {
        this.mNegBtnText = text;
        return this;
    }

    /**
     * 设置确定按钮的文字
     *
     * @param text 确定按钮的文字
     * @return AlertDialogUtil 类
     */
    public AlertDialogUtil positiveText(String text) {
        this.mPosBtnText = text;
        return this;
    }

    /**
     * 设置取消按钮的点击事件
     *
     * @param listener 取消按钮的点击事件监听
     * @return AlertDialogUtil 类
     */
    public AlertDialogUtil negative(OnAlertNegativeListener listener) {
        this.mNegativeListener = listener;
        return this;
    }

    /**
     * 设置确定按钮的点击事件
     *
     * @param listener 确定按钮的点击事件监听
     * @return AlertDialogUtil 类
     */
    public AlertDialogUtil positive(OnAlertPositiveListener listener) {
        this.mPositiveListener = listener;
        return this;
    }

    public interface OnAlertNegativeListener {
        void onNegativeClick(int i);
    }

    public interface OnAlertPositiveListener {
        void onPositiveClick(int i);
    }
}
上一篇下一篇

猜你喜欢

热点阅读