在我们做登陆验证的时候经常会用到toast来提示用户输入内容的错误等,很多人都是直接用的
Toast.makeText(LoginActivity.this, "请联系小区物管", Toast.LENGTH_SHORT)
.show();
然而,以登陆功能为例,用这个的时候你会发现我在没有输入用户名的时候一直点击登陆按钮,程序会一直提示"请输入用户名"等字样,然后你不点击的时候,程序还会提示,直到提示到跟你点击次数一致时,才会停止提示,这样给用户的体验是极度不好的,所以提供一个toast的类,
public class CustomToast {
private static Toast mToast;
private static Handler mhandler = new Handler();
private static Runnable r = new Runnable() {
public void run() {
mToast.cancel();
};
};
public static void showToast(Context context, String text, int duration) {
mhandler.removeCallbacks(r);
if (null != mToast) {
mToast.setText(text);
} else {
mToast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
}
mhandler.postDelayed(r, 5000);
mToast.show();
}
public static void showToast(Context context, int strId, int duration) {
showToast(context, context.getString(strId), duration);
}
}
这样就可以解决一直弹toast消息的问题了
调用方法:CustomToast.showToast(this,"要输出的内容",Toast.LENGTH_SHORT);