欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ToastUtil工具类

程序员文章站 2022-03-11 22:53:07
在Android开发中,有些时候,可能要求定制Toast,例如:前面显示一个图标,或者正确操作显示绿色,错误操作,显示红色;这时候可以自己定义,可以使用第三方框架。//toast工具类//https://github.com/GrenderG/Toastyimplementation 'com.github.GrenderG:Toasty:1.4.2'项目的根目录build.gradle 文件buildscript { repositories { google()...

封装的目的:不让业务直接操作具体的框架,而操作我们的API,这样方便后面重构。

在Android开发中,有些时候,可能要求定制Toast,例如:前面显示一个图标,或者正确操作显示绿色,错误操作,显示红色;这时候可以自己定义,可以使用第三方框架。

//toast工具类
//https://github.com/GrenderG/Toasty
implementation 'com.github.GrenderG:Toasty:1.4.2'

项目的根目录build.gradle 文件

buildscript {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }//github网站上说这里也要配置
    }
   ...
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

使用如下:

1.在应用上下文初始化

/**
 * 全局Application
 */
public class AppContext extends Application {

    /**
     * 创建了 (第一次创建应用或者杀掉应用后就会执行一次这个方法)
     */
    @Override
    public void onCreate() {
        super.onCreate();
        //初始化toast工具类
        Toasty.Config.getInstance().apply();
    }
}

2.定义工具类

/**
 * Toast工具类
 */
public class ToastUtil {

    /**
     * 上下文
     * 这里的话,是持有应用的引用,所以应该不会造成内存泄漏
     */
    @SuppressLint("StaticFieldLeak")//最好写上这句(教程没有的)
    private static Context context;

    /**
     * 初始化方法
     *
     * @param context Context
     */
    public static void init(Context context) {
        ToastUtil.context = context;
    }

    /**
     * 显示短时间错误toast
     * <p>
     * 校验参数
     *
     * @param id      @StringRe:必须是字符串的id
     */
//    public static void errorShortToast(@NonNull Context context, @StringRes int id) {
    public static void errorShortToast(@StringRes int id) {
        //必须要调用show方法
        Toasty.error(context, id, Toasty.LENGTH_SHORT).show();
    }

    /**
     * 显示短时间错误toast 字符串的形式  目前requestErrorHandler方法使用到
     *
     * @param message Message
     */
    public static void errorShortToast(String message) {
        //必须要调用show方法
        Toasty.error(context, message, Toasty.LENGTH_SHORT).show();
    }


    /**
     * 显示长时间错误toast
     * @param id      字符串id
     */
//    public static void errorLongToast(@NonNull Context context, @StringRes int id) {
    public static void errorLongToast(@StringRes int id) {
        Toasty.error(context, id, Toasty.LENGTH_LONG).show();
    }

    /**
     * 显示短时间正确toast
     *
     * @param id 通过id找字符串
     */
    //    public static void successShortToast(@NonNull Context context, @StringRes int id) {
    public static void successShortToast(@StringRes int id) {
        Toasty.success(context, id, Toasty.LENGTH_LONG).show();
    }

    /**
     * 显示短时间正确toast
     *
     * @param data 字符串传入
     */
    public static void successShortToast(String data) {
        Toasty.success(context, data, Toasty.LENGTH_SHORT).show();
    }

}

3.使用工具类

ToastUtil.successShortToast(getMainActivity(), "登录成功");
ToastUtil.errorShortToast(getMainActivity(), R.string.enter_username);

本文地址:https://blog.csdn.net/qq_40082314/article/details/108740319