Android实现多条Toast快速显示(强制中止上一条Toast的显示)
2015-09-28 11:45
453 查看
Android实现多条Toast快速显示
Toast多用于我们开发人员调试使用,有时候也作为给用户的弱提示使用,我们常用的方法是
Toast.makeText(this, "弹出Toast", Toast.LENGTH_SHORT).show();
那么问题来了,这样实现就会有一个问题,每一条Toast都要显示1S左右的时间,如果调试的Toast较多,能急死
实现Toast显示的时候,中止上一条Toast的显示
有时候就是有这种需求,也可以方便我们的调试
先说一下上一种方式为什么就每个都显示1s左右的时间,因为makeText就是获取一个Toast对象,然后之间show了出来,相当于一个队列,每显示一条,就创建一个对象,在后面显示出来,每个都是一秒,
那么解决方案,就是只用一个Toast对象来显示,然后使用setText方法来设置显示内容,最后show显示出来
private Toast toast = null; /** * 弹出Toast(中断正在显示的Toast) */ public void showToast(View view) { if (toast == null) { toast = Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT); } toast.setText("弹出Toast(中断正在显示的Toast)"); toast.show(); }
工具类(为了方便,可以直接复制粘贴使用)
package googleanalytics.example.com.kqwtoastdemo; import android.content.Context; import android.widget.Toast; /** * Created by kongqw on 2015/9/28. */ public class ToastUtile { // 构造方法私有化 不允许new对象 private ToastUtile() { } // Toast对象 private static Toast toast = null; /** * 显示Toast */ public static void showText(Context context, String text) { if (toast == null) { toast = Toast.makeText(context, "", Toast.LENGTH_SHORT); } toast.setText(text); toast.show(); } }
测试类
package googleanalytics.example.com.kqwtoastdemo; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 弹出Toast */ public void showToastDefault(View view) { Toast.makeText(this, "弹出Toast", Toast.LENGTH_SHORT).show(); } private int mShowCount = 0; /** * 弹出Toast(中断正在显示的Toast) */ public void showToast(View view) { ToastUtile.showText(this, "弹出Toast(中断正在显示的Toast) " + mShowCount++); } }
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="showToastDefault" android:text="弹出Toast" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="showToast" android:text="弹出Toast(中断正在显示的Toast)" /> </LinearLayout>
效果图
相关文章推荐
- Android实现多条Toast快速显示(强制中止上一条Toast的显示)
- Android开发者必知的5个开源库
- 点击桌面图标Activity启动流程分析 - 基于Android5.0源码
- android px、dp(dip)、dpi基本概念及之间的关系
- android 更改USB显示名称
- android textview 点击打开facebook个人专页,如果没有则跳到浏览器显示
- Android自定义控件——自定义属性
- Android string %1$s %1$d
- Android中spinner的简单用法(1)
- Eclipse中跟踪调试Android源代码
- Android代码优化小技巧总结
- Android keystore 密码找回
- android 中的 ContentObserver (二)
- Android CheckBox 图片设置开关
- Android签名打包出现Export aborted because fatal lint errors were found的解决
- 保护Android代码(防止反编译)
- Android Monkey测试脚本
- android 双击退出应用
- Android 静态分析smail
- android混淆