美文网首页
Toast重复显示的问题

Toast重复显示的问题

作者: 最忆是深秋 | 来源:发表于2018-05-08 14:39 被阅读16次

背景

  反复多次点击控件弹Toast 的场景,会一直不停的弹toast, 影响体验。所以就想无论点了多少次,只弹最后一次,这样体验最好。

一个早就该踩的坑

  最初我是这么干的,完了发现Toast根本弹不出来了:

    private Toast mToast;
    public void showToast(){
        if(mToast == null){
            mToast = Toast.makeText(mContext, mContext.getResources().getString(R.string.xxx), Toast.LENGTH_SHORT);
        }
        mToast.cancel();
        mToast.show();
    }

正解

    public void showToast(){
        if(mToast == null){
            mToast = Toast.makeText(mContext, mContext.getResources().getString(R.string.xxx), Toast.LENGTH_SHORT);
        }else{
            mToast.setText(R.string.xxx);
        }
        mToast.show();
    }

解决思路,就是定义一个全局的成员变量Toast,这个Toast不为null的时候才去make,否则直接setText. 如果想要按返回键后立即使Toast不再显示,重写父类Activity的onBackPressed()方法里面去cancel你的Toast即可。

相关文章

网友评论

      本文标题:Toast重复显示的问题

      本文链接:https://www.haomeiwen.com/subject/rzoirftx.html