Samoy的小窝

千里之行,始于足下 万行代码,始于指下

一只默默工作的程序猿


欢迎光临Samoy的小窝

一个Alert弹出框的工具类:AlertUtils

最近在做Android项目的时候总觉得系统提供的Alert弹出框代码过于繁琐, 因此对系统Alert的代码进行了二次封装,这样以后开发的时候再也不用写很多代码了。 代码如下:


import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;

/**
 * Alert工具类
 *
 * @author Samoy
 * @date 2018/1/10
 */

public final class AlertUtils {
    private static AlertDialog dialog;
    
    public static void showProgress(Activity activity, String title, String message) {
        if (dialog != null) {
            dismiss();
        }
        dialog = ProgressDialog.show(activity, title, message, false, false);
    }

    public static void dismiss() {
        if (dialog != null) {
            dialog.dismiss();
            dialog = null;
        }
    }

    public static void showAlert(Activity activity, String title, String message) {
        if (dialog != null) {
            dismiss();
        }
        dialog = new AlertDialog.Builder(activity)
                .setTitle(title)
                .setMessage(message)
                .setPositiveButton("确定", null)
                .show();
    }

    public static void showAlert(Activity activity, String title, String message, DialogInterface.OnClickListener onEnsureClick) {
        if (dialog != null) {
            dismiss();
        }
        dialog = new AlertDialog.Builder(activity)
                .setTitle(title)
                .setMessage(message)
                .setPositiveButton("确定", onEnsureClick)
                .show();
    }

    public static void showAlert(Activity activity, String title, String message, DialogInterface.OnClickListener onEnsureClick, DialogInterface.OnClickListener onCancelClick) {
        if (dialog != null) {
            dismiss();
        }
        dialog = new AlertDialog.Builder(activity)
                .setTitle(title)
                .setMessage(message)
                .setPositiveButton("确定", onEnsureClick)
                .setNegativeButton("取消", onCancelClick)
                .show();
    }

    public static void showAlert(Activity activity, String title, String message, DialogInterface.OnClickListener onEnsureClick, DialogInterface.OnClickListener onCancelClick, DialogInterface.OnClickListener onNeutralClick) {
        if (dialog != null) {
            dismiss();
        }
        dialog = new AlertDialog.Builder(activity)
                .setTitle(title)
                .setMessage(message)
                .setPositiveButton("确定", onEnsureClick)
                .setNegativeButton("取消", onCancelClick)
                .setNeutralButton("以后再说", onNeutralClick)
                .show();
    }
}

后记:单项和多项选择以后再实现,这样的需求不是很多。

最近的文章

Redis基本命令用法

一、String概述:String是redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储任何数据,比如数字、图片、序列化对象等。 设置 设置键值 set key value 设置键值以及过期时间 setex key time value 设置多个键值 mset key value [key valu...…

更早的文章

关于Java和OC深浅复制的问题

昨天做项目的时候才发现Java和OC的深浅复制和Java的完全相反,Java的深复制是复制对象的地址,即两个对象有相同的内存地址(或者说这是同一个对象),而浅复制才是复制是一个新的对象,即新开辟一个新的内存地址,属性通过赋值传递。下面是Java的一个例子:public class Main { public static void main(String[] args) throws CloneNotSupportedException { Cat cat = new ...…