用户登录
用户注册

分享至

ToastUtil工具类

  • 作者: 下吧笑掉
  • 来源: 51数据库
  • 2021-08-29

封装的目的:不让业务直接操作具体的框架,而操作我们的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);
软件
前端设计
程序设计
Java相关