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

来源:互联网 发布:手机皮卡堂软件 编辑:程序博客网 时间:2024/05/16 14:20

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>

效果图

这里写图片描述

0 0