安卓提示toast,避免相同信息重复弹出

安卓开发过程中,提示肯定会用到。恰当的提示时方便让用户知道他们当前所做的动作产生的结果,好的提示自然是能够提升用户体验,但是过度提示就会让应用的用户体验变得糟糕。

就是这样一个情景,当用户连续操作某一个相同动作时,不至于相同的信息连续不断的提示。但是又不至于在用户操作之后不弹出提示。所以针对这样的需求,简单的做了如下的一个类,专门用作提示。

1.需求:

     相同的提示,只会弹一个。不同的提示会连续的弹出。

2.实现:

    采用系统的toast,根据消息控制是否弹出。

3.代码:

    a)代码实现:

       

    /** Data */
    private String mTempStr = "";
    private Toast toast = null;
    public static GToast i;

    /*********************************/
    public static GToast getInsance(){
        if(i == null)
            i = new GToast();
        return i;
    }

    private GToast(){}

    public void show(String text){
        if(toast == null){
            mTempStr = text;
            toast = Toast.makeText(MApplication.gContext, text, Toast.LENGTH_SHORT);
        }else{
            if(mTempStr.equals(text)){
                mTempStr = "";
                return ;
            }
            toast.cancel();
            toast = Toast.makeText(MApplication.gContext, text, Toast.LENGTH_SHORT);
            mTempStr = text;
        }
        toast.show();
    }

     当然这样的一个静态实例类就已经可以调用。但是为了调用更加方便,这里做了个简单的封装(其实就是使用一个i替代了getInstance()),

     调用如下:

GToast.i.show("this is a test");
   

    b)因为这是一个静态单例,在应用的生命周期中都可能存在,所以所持有的上下文是ApplicationContext。

      这里对这个静态单利初始化放在了Application中(避免内存溢出的好习惯,其实全局的,静态的单例都应该放在Application中,不然就会导致Activity不能被销毁掉,内存溢出)。

  4) 源码如下:

          https://github.com/wzp09tjlg/GToast.git


     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值