ToastUtil

项目中我们会经常用到Toast来显示提示信息或者错误信息。

/**
 * 类说明:toast 消息提醒
 * Author:gaobaiq
 * Date:2016/04/20
 */
public class ToastUtils {

    private static volatile Toast toast;

    public static void ToastMessage(Context cont, String msg) {
        if (cont == null || StringUtils.isEmptyString(msg)) {
            return;
        }
        showToast(cont, msg, Toast.LENGTH_LONG);
    }

    public static void ToastMessage(Context cont, int msg) {
        if (cont == null) {
            return;
        }
        showToast(cont, cont.getString(msg), Toast.LENGTH_LONG);
    }

    public static void ToastMessage(Context cont, String msg, int time) {
        if (cont == null || StringUtils.isEmptyString(msg)) {
            return;
        }
        showToast(cont, msg, time);
    }

    // 防止多次点击的时候一直在显示
    private static void showToast(Context context, String msg, int time) {
        if (toast == null) {
            synchronized (ToastUtils.class) {
                if (toast == null) {
                    toast = Toast.makeText(context.getApplicationContext(), "", Toast.LENGTH_LONG);
                }
            }
        }
        toast.setText(msg);
        toast.setDuration(time);
        toast.show();
    }
}

以上防止多次点击一直显示还可以用以下方法来处理

    private static String oldMsg ;  // 之前显示的内容 
    private static long oneTime = 0 ;  // 第一次时间
    private static long secTime = 0 ;  // 第二次时间
      
    
    public static void showToast(Context context,String message) {  
        if(toast == null){  
            toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);  
            toast.show() ;  
            oneTime = System.currentTimeMillis() ;  
        }else{  
            secTime = System.currentTimeMillis() ;  
            if(message.equals(oldMsg)){  
                if(secTime - oneTime > Toast.LENGTH_SHORT){  
                    toast.show() ;  
                }  
            }else{  
                oldMsg = message ;  
                toast.setText(message) ;  
                toast.show() ;  
            }  
        }  
        oneTime = twoTime ;  
    }

 

转载于:https://www.cnblogs.com/gaobaiq/p/5798246.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值