Android实现多条Toast快速显示(强制中止上一条Toast的显示)

简介: Android实现多条Toast快速显示 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开发
flutter中实现仿Android端的onResume和onPause方法
flutter中实现仿Android端的onResume和onPause方法
|
5月前
|
XML Java API
30. 【Android教程】吐司提示:Toast 的使用方法
30. 【Android教程】吐司提示:Toast 的使用方法
213 2
|
12月前
|
Android开发
android之Toast使用
android之Toast使用
98 0
|
Android开发 数据安全/隐私保护 开发者
ApeForms | C#WinForm弹出简易的消息提示框 (仿Android Toast消息提示)
在使用手机的时候经常会见到屏幕的中下方会弹出消息提示框,它就是Toast。 ApeForms中也实现了非常简洁易用Toast,与Android的Toast不同的是,ApeForms允许开发者设置不同的弹出模式。此外还针对PC端有鼠标的情况进行了改进,当鼠标悬停于消息弹出框之上时弹出框不会消失。
417 0
ApeForms | C#WinForm弹出简易的消息提示框 (仿Android Toast消息提示)
|
缓存 JSON Java
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
434 1
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
|
Android开发 容器
Android实现面包屑效果,支持Fragment联动
Android实现面包屑效果,支持Fragment联动
|
Android开发
Android实现连线题效果
Android实现连线题效果
|
移动开发 JavaScript Android开发
通过howler.js实现在Android下的微信浏览器自动播放音频
通过howler.js实现在Android下的微信浏览器自动播放音频
528 0
通过howler.js实现在Android下的微信浏览器自动播放音频
|
Android开发
android中的提示信息显示方法(toast应用)
android中的提示信息显示方法(toast应用)
257 1
|
数据库 Android开发
android 多级下拉菜单实现教程 greendao使用
android 多级下拉菜单实现教程 greendao使用
240 0
android 多级下拉菜单实现教程 greendao使用