在开发Android APP时经常会使用吐丝提示,如果直接使用【Toast.makeText(context, text, Toast.LENGTH_SHORT).show();】方法,连续弹出吐丝时会创建多个吐丝提示,这样用户体验会非常的恶略,所以我们要将吐丝提示进行优化,不管你点击多少次他只弹出一个吐丝提示。具体代码如下(主要看show方法):
import android.annotation.SuppressLint;
import android.content.Context;
import android.widget.Toast;
/**
* @author zhiyu.zhang
* @version 1.0
* @date 2018/3/2
* @brief 吐丝工具类
* @Description
*/
public class ToastUtils {
/**
* 全局吐司
*/
private static Toast mToast;
/**
* 短时间弹出吐司(不会出现多次点击导致Toast不断弹出)
*
* @param context 上下文
* @param text 需要显示的文本
*/
public static void showShort(Context context, CharSequence text) {
show(context, text, Toast.LENGTH_SHORT);
}
/**
* 长时间弹出吐司(不会出现多次点击导致Toast不断弹出)
*
* @param context 上下文
* @param text 需要显示的文本
*/
public static void showLong(Context context, CharSequence text) {
show(context, text, Toast.LENGTH_LONG);
}
/**
* 根据传入的显示时长类型弹出吐丝(不会出现多次点击导致Toast不断弹出)
*
* @param context 上下文
* @param text 需要显示的文本
* @param duration 显示时长类型
*/
private static void show(Context context, CharSequence text, int duration) {
if (mToast != null) {
mToast.setText(text);
mToast.setDuration(duration);
} else {
mToast = Toast.makeText(context, text, duration);
}
mToast.show();
}
}