新建类ToastUtils如下:
/** * ToastUtils 利用单例模式,解决重命名toast重复弹出的问题 */ public class ToastUtils { private static ToastUtils mToastUtils; private static Toast mToast; private ToastUtils(Context context){ if (null == mToast){ mToast = Toast.makeText(context.getApplicationContext(),"",Toast.LENGTH_LONG); } } public static ToastUtils getInstance(Context context) { if (mToastUtils == null){ mToastUtils = new ToastUtils(context.getApplicationContext()); } return mToastUtils; } public void showShortToast(String mString){ if (mToast == null){ return; } mToast.setText(mString); mToast.setDuration(Toast.LENGTH_SHORT); // mToast.setGravity(Gravity.CENTER, 0, 0); mToast.show(); } public void showLongToast(String mString){ if (mToast == null){ return; } mToast.setText(mString); mToast.setDuration(Toast.LENGTH_LONG); // mToast.setGravity(Gravity.CENTER, 0, 0); mToast.show(); } }
用法如下(这里的Context参数最好是用ApplicationContext,防止内存泄漏):
//用法如下 ToastUtils.getInstance(this.getApplicationContext()).showShortToast("你要显示的文本信息!");
这样就能防止同一个toast重复显示,优化app的体验效果!
以上只是我解决问题过程中的一点点个人总结,点滴积累,贵在坚持,感谢你的阅览!