Android实现多条Toast快速显示(强制中止上一条Toast的显示)
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的显示)的更多相关文章
- 四条命令快速在Ubuntu16.04上配置DNS服务器
		1. apt install dnsmasq -y 2. vim /etc/dnsmasq.d/resolv.conf address=/xxx.yyy.com/21.xx.xx.x 3. servi ... 
- 【Android代码片段之六】Toast工具类(实现带图片的Toast消息提示)
		转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/6841266 作者:张燕广 实现的Toast工具类ToastUtil封装 ... 
- Android NumberProgressBar:动态移动显示百分比进度的进度条
		 Android NumberProgressBar:动态移动显示百分比进度的进度条 NumberProgressBar是github上一个开源项目,其项目主页是:https://github.c ... 
- Android中ProgressBar的使用-通过Handler与Message实现进度条显示
		场景 进度条效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改为 ... 
- android一个上传图片的样例,包含怎样终止上传过程,假设在上传的时候更新进度条(一)
		先上效果图: Layout为: <? xml version="1.0" encoding="utf-8"?> <LinearLayout x ... 
- Android移动后端服务(BAAS)快速搭建后台服务器之Bmob-android学习之旅(75)
		个人移动开发者的最头疼的问题,就是App的网络后台,包含数据库等,国外目前有比较成熟的解决方案,但是限制于墙的问题,推荐国内的解决方案,比较出名的是Bmob和AVOS cloud和Atom等,这一次我 ... 
- Android——对话框1(一般、选择、自定义、进度条)
		xml <Button android:layout_width="match_parent" android:layout_height="wrap_conten ... 
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
		标签: Android百度地图API Key 分类: Android 百度地图开发(2) 最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地 ... 
- Android 自定义View修炼-自定义View-带百分比进度的圆形进度条(采用自定义属性)
		很多的时候,系统自带的View满足不了我们功能的需求,那么我们就需要自己来自定义一个能满足我们需求的View,自定义View我们需要先继承View,添加类的构造方法,重写父类View的一些方法,例如o ... 
随机推荐
- [LeetCode] Count Different Palindromic Subsequences 计数不同的回文子序列的个数
			Given a string S, find the number of different non-empty palindromic subsequences in S, and return t ... 
- [Codeforces 922E]Birds
			Description 题库链接 一条直线上有 \(n\) 棵树,每棵树上有 \(c_i\) 只鸟,在一棵树底下召唤一只鸟的魔法代价是 \(cost_i\) 每召唤一只鸟,魔法上限会增加 \(B\) ... 
- bzoj1127[POI2008]KUP 悬线法
			Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 485 Solved: 174[Submit][Status][D ... 
- Python3 sys.argv[ ]的用法解释
			sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个"外部"很关键,所以那些试图从代码来说明它作用的解释一直没看明白.因为我们从外部取得的参数可以是多个,所以获得的是一 ... 
- Delphi备忘录——基本语句
			选择语句: 1.If-Then-Else选择语句: If (表达式) Then Begin 语句块; End Else If(表达式) Then Begin 语句块; End; Else Begin ... 
- Delphi7.0常用函数-属性-事件
			abort 函数 引起放弃的意外处理 addexitproc 函数 将一过程添加到运行时库的结束过程表中 addr 函数 返回指定对象的地址 adjustlinebreaks 函数 将给定字符串的行分 ... 
- es6新增
			首先要说let,他是只在代码块中执行的变量,例如: { let a = 10; var b = 1;}console.log(a);//definedconsole.log(b);//1 ... 
- 转载:使用Math.floor和Math.random取随机整数
			Math.random():获取0~1随机数 Math.floor() method rounds a number DOWNWARDS to the nearest integer, and ret ... 
- angular学习笔记  父子组件传值
			一.如何将父组件的值传到子组件? 在子组件里面引入Input,然后用@Input 变量1 接收 接着在父组件中的,子组件标签上添加[msg]="msg",中括号里的名字要与子组件中 ... 
- Genymotion配置遇到的坑
			1.Genymotion 无法Add下来 解决: ①首先打开Genymotion,的Settings然后找到VirtualBox,复制链接,在本地找到文件夹,然后返回上一层找到ova文件夹进入, ②然 ... 
