zoukankan      html  css  js  c++  java
  • 手把手简单封装Toasty

    之前用了Toasty,确实挺不错的,也非常简单,但是实际使用中每用一次都要传好久几个参数还是过于麻烦,那么话不多说,封装呗。


    第一步还是导入依赖,之前的文章有讲,就不说了。新建一个类,我取名为Tw,你自己随意。

    我们先来封装一个success的Toast,

    Toasty.success(MainActivity.this, "This is a success toast.", Toast.LENGTH_SHORT, true).show();

    上面是直接使用时的方法,封装的过程无非就是把方法单独放置,统一给参数。那么我们来看,这里需要满足四个参数:context 内容 持续时间 是否带图标。第234个参数非常好解决,关键是第1个,你使用时肯定在不同的activity、fragment。关键就在于怎么获取使用时的context,我选择的是自定义application。

    创建一个类,命名为MyApplication,继承Application。由于这里的作用就是获取context,需要定义一个context来储存

    private static Context mAppContext;

    然后onCreate方法,获得mAppContext

    @Override
        public void onCreate() {
            super.onCreate();
            mAppContext = this;
        }

    获取的有了,但在其他地方调用时,还需要一个方法来使获取的这个值返回,

    public static Context getAppContext() {
            return mAppContext;
        }

    最终这个类的全部代码就是

    import android.app.Application;
    import android.content.Context;
    
    public class MyApplication extends Application {
        private static Context mAppContext;
    
        @Override
        public void onCreate() {
            super.onCreate();
            mAppContext = this;
        }
    
        public static Context getAppContext() {
            return mAppContext;
        }
    }

    先别着急用,还需要在manifest里声明才能用

    ok,这就可以用了,再回到success的封装上,这就很清晰了呀。

    参数1:context,解决了,调用时    你的自定义application类名.自定义获取值的方法名    就可以,以我为例

    MyApplication.getAppContext()

    参数2:内容,每次使用的时候传进来

    参数3:持续时间,我个人的需求short就行了,你自己可以自定义

    参数4:是否带图标,我的需求是true

    那么在Tw的类里,success的方法就是

    public static void success(String text) {
            Toasty.success(MyApplication.getAppContext(), text, Toast.LENGTH_SHORT, true).show();
        }

    调用时    类名.方法名(传入的String内容)    就可以,以我为例

    Tw.success("123456789");

    而自定义Toasty的封装也以此类推

    public static void info(String text) {
            Toasty.custom(MyApplication.getAppContext(), text, R.drawable.ic_toast_info, R.color.colorPrimary, Toast.LENGTH_SHORT, true, true).show();
        }

    参数分别是:context 内容 自定义图标 Toast背景色 持续时间 是否带图标 是否自定义背景色

    文字颜色的话,用Toasty的全局设置就ok。

    效果图

    最后惯例放上源码和demo,apk在Tostyappuildoutputsapkdebug里

    蓝奏云(工程名和包名的Tosty不是失误打错了,而是因为名字重了故意打成Tosty的)

  • 相关阅读:
    Linux命令-查看进程
    Linux命令-查看内存
    Linux命令---vim
    oracle分页查询按日期排序失败问题
    oracle使用between and边界问题
    给大家介绍一个自我感觉好用的网站
    想学习一下微服务
    oracle获取年、月、日
    mybatis返回map结果集
    修改表中列
  • 原文地址:https://www.cnblogs.com/bigcn/p/12360461.html
Copyright © 2011-2022 走看看