解决Toast重复显示问题

Toast一般用来提示用户的误操作。但是如果同时显示多个Toast信息时,系统会将这些Toast信息放到队列中,等前一个Toast信息显示关闭后才会显示下一个Toast信息。当用户在某些情况下,误操作多次时,使用 Toast提示会出现很多个Toast依次显示,在页面上停留很长时间,用户体验不好!

 

package com.example.testtoast;

import android.content.Context;
import android.os.Handler;
import android.widget.Toast;
/**
 *
 * @Description: Toast工具類
 * @author lichuan
 * @date 2014-5-10    上午10:11:52
 * @version 2.0
 */
public class MyToast {
   
    private static Toast mToast;
    private static Handler mHandler = new Handler();
   
    private static Runnable runnable = new Runnable() {
  public void run() {
   mToast.cancel();
  }
 };

 public static void showToast(Context mContext, String text, int duration) {

  mHandler.removeCallbacks(runnable);//移除队列任务
  if (mToast != null)
   mToast.setText(text);
  else
   mToast = Toast.makeText(mContext, text, duration);
  
  mHandler.postDelayed(runnable, duration);
  mToast.show();
 }
 
   //方法重載
 public static void showToast(Context mContext, int resId, int duration) {
  showToast(mContext, mContext.getResources().getString(resId), duration);
 }
 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值