[Android]自定义Toast
2015-07-18 20:23
585 查看
Toast,在Android开发中常常会遇到,但是,我们总是会遇到一个问题,那便是当我们使用按钮监听弹出Toast的时候,假如不断点击按钮,将会不断地弹出Toast,而这一篇文章便是为了解决这个问题而编写的。
同时,为了节约app资源和方便使用,便使用单例模式来实现自定义Toast。
(1)建立MyToast类,并且定义以下成员变量,以及部分更改器:
(2)创建初始化Toast的方法:
在这里使用了锁,并双重判断,保证了Toast的唯一性,避免出现了多个Toast。
(3)创建显示Toast的方法:
(5)运行效果:
![](http://img.blog.csdn.net/20150718205250883?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
无论点击多少次都是图中的效果,不会说多次点击之后,等一个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仿虾米音乐播放器之通知栏notification解析
- Android Studio 那些事|Activity文件前标识图标显示为 j 而是 c
- Android Studio 那些事|Class Editor Tab页卡不显示问题
- android开发之this.finish()的使用
- android开发之this.finish()的使用
- android开发之this.finish()的使用
- android开发之this.finish()的使用 分类: android 学习笔记 2015-07-18 19:05 30人阅读 评论(0) 收藏
- Android Junit测试框架
- android layoutparams应用指南(转)
- 人生的第一个Android游戏诞生
- Android自注-15-Activity生命周期
- Android 内存分析工具LogCat GC
- Android Graphic :OpenGL|ES
- android Canvas类介绍
- android图形系统详解一:Canvas
- Android的闪退问题
- Android ListView初始化简单分析
- Android View深入学习(二),View的布局(Layout)过程
- Android keyevent 整理
- Android 实现RippleEffect水波纹效果