码迷,mamicode.com
首页 > 移动开发 > 详细

[Android]自定义Toast

时间:2015-07-19 10:21:16      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:toast   android   自定义   

Toast,在Android开发中常常会遇到,但是,我们总是会遇到一个问题,那便是当我们使用按钮监听弹出Toast的时候,假如不断点击按钮,将会不断地弹出Toast,而这一篇文章便是为了解决这个问题而编写的。

同时,为了节约app资源和方便使用,便使用单例模式来实现自定义Toast。

(1)建立MyToast类,并且定义以下成员变量,以及部分更改器:

	private static final Object SYNC_LOCK = new Object();
	private static Toast mToast;
	/** 上下文 */
	public static Context context;

	public static Context getContext() {
		return context;
	}

	public static void setContext(Context context) {
		MyToast.context = context;
	}

(2)创建初始化Toast的方法:

	/**
	 * 获取toast环境,为toast加锁
	 * 
	 * @param context
	 * @return
	 */
	private static void initToastInstance() {

		if (mToast == null) {
			synchronized (SYNC_LOCK) {
				if (mToast == null) {
					mToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
				}
			}
		}
	}

在这里使用了锁,并双重判断,保证了Toast的唯一性,避免出现了多个Toast。

(3)创建显示Toast的方法:

	/**
	 * 展示吐司
	 * 
	 * @param context
	 *            环境
	 * @param text
	 *            内容
	 */
	public static void showToast(String text, Context context) {
		setContext(context);
		if (getContext() != null && text != null) {
			initToastInstance();
			mToast.setDuration(Toast.LENGTH_SHORT);
			mToast.setText(text);
			mToast.show();
		}
	}
(4)使用以下代码显示Toast。

MyToast.showToast("MyToast", MainActivity.this);

(5)运行效果:

技术分享

无论点击多少次都是图中的效果,不会说多次点击之后,等一个Toast消失后,出现另外一个Toast。


版权声明:本文为博主原创文章,未经博主允许不得转载。

[Android]自定义Toast

标签:toast   android   自定义   

原文地址:http://blog.csdn.net/u011596810/article/details/46945229

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!