android之Toast多次提示延时处理

学习android的人应该都明白Toast是用来做做什么的,在这里就不多说了。

Toast提示出现后会停留一段时间,在这段时间内再次执行Toast会有时间延迟,即上一次提示消失后下一次才出现。这时我们希望信息能及时更新。

解决思路:当前没有提示信息时正常执行;当前有提示信息时新信息覆盖原来的信息。

法一:创建一个ToastShow类,用于封装此功能

import android.content.Context;
import android.view.Gravity;
import android.widget.Toast;

public class ToastShow {
    private Context context;  //在此窗口提示信息

    private Toast toast = null;  //用于判断是否已有Toast执行
    public ToastShow(Context context) {
         this.context = context;
    }
    public void toastShow(String text) {
        if(toast == null)
        {
            toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);  //正常执行
        }
        else {
            toast.setText(text);  //用于覆盖前面未消失的提示信息
        }
        toast.show();
    }
} 

在需要此功能的窗口中使用

ToastShow toast = new ToastShow(this);
toast.toastShow("提示信息");

法二:创建一个ToastShow类,用于封装此功能

import android.content.Context;
import android.widget.Toast;

/**
 * 自定义Toast
 * @author Administrator
 *
 */
public class ToastUtils {

    protected static Toast toast   = null;
    private static String oldMsg;
    private static long oneTime = 0;
    private static long twoTime = 0;

    public static void showToast(Context context, String s){
        if(toast==null){
            toast =Toast.makeText(context, s, Toast.LENGTH_SHORT);
            toast.show();
            oneTime=System.currentTimeMillis();
        }else{
            twoTime=System.currentTimeMillis();
            if(s.equals(oldMsg)){
                if(twoTime-oneTime>Toast.LENGTH_SHORT){
                    toast.show();
                }
            }else{
                oldMsg = s;
                toast.setText(s);
                toast.show();
            }
        }
        oneTime=twoTime;
    }  

    public static void showToast(Context context, int resId){
        showToast(context, context.getString(resId));
    }
}

在需要此功能的窗口中使用

ToastUtils.showToast(this, "提示信息");
时间: 2024-10-14 10:58:05

android之Toast多次提示延时处理的相关文章

Android:Toast简单消息提示框

Toast是简单的消息提示框,一定时间后自动消失,没有焦点. 1.简单文本提示的方法: //参数1:当前的上下文环境.this或getApplicationContext() //参数2:提示内容 //参数3:显示的时间长短 Toast toast = Toast.makeText(this, "默认的toast", Toast.LENGTH_LONG); toast.show(); 2.自定义位置的方法: Toast toast = Toast.makeText(this, &quo

提示框第三方库之MBProgressHUD iOS toast效果 动态提示框效果

提示框第三方库之MBProgressHUD iOS toast效果 动态提示框效果 2014-08-11 17:39 11614人阅读 评论(0) 收藏 举报  分类: iOS相关(20)  文章来自:http://blog.csdn.net/ryantang03/article/details/7877120 MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单.方便,并且可以对显示的内容进行自定义,功能很强大,很多项目中都有使用到.到GitHub上可以下载到项目源码

Cocos2d-x实现Android的Toast功能

1.Toast Android的Toast是一个View视图,快速为用户显示少量的信息.主要用于一些提示和帮助.本文实现了Toast最基本的操作能, 代码如下: //PacToast.h #include "cocos2d.h" #include "cocos-ext.h" #include "ui/CocosGUI.h" USING_NS_CC; USING_NS_CC_EXT; using namespace ui; class PacToa

Android的Toast介绍-android学习之旅(三十六)

Toast简介 Toast是一个非常方便的消息提示框,会在桌面显示一个短暂的消息提示.有两个特点: 1.消息不会获得焦点. 2.过一段时间会自动消失. Toast的生成步骤 1.调用构造器或者静态方法makeText()来生成一个Toast. 2.调用Toast设置该消息的对其方式,页边距等. 3.调用Toast的show()方法将他显示出来. Toast大部分只能显示消息,如果要显示图片和图表等需要用setView()方法进行定制. 带图片的消息提示 demo package peng.liu

Android之Toast通知的几种自定义用法

Toast在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失. 1.默认用法 [html] view plain copy print? Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show(); 2.Fragment中的用法 [html] view plain copy print? Toast.makeText(getActivity(),"网络连接错误,请检察网络设

android实现好看的自定义提示框

效果图: 代码部分 main_activity.xml <RelativeLayout 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_pa

Android_(消息提示)多种使用Toast的消息提示

Toast是一种提供给用户简介信息的视图,可以创建和显示消息,该视图以浮于应用程序之上的形式呈现给用户.因为它并不获得焦点,即使用户正在输入什么也不会受到影响. Toast目标是尽可能以不显眼的方式,使用户看到提示的信息. 运行截图: 程序结构 package com.example.asus.gary_74; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.vie

android 自定义Toast显示风格

1.创建一个自己想要显示Toast风格的XML如下代码(toast_xml.xml): [html] view plaincopyprint? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match

Android 解决Toast一直显示个不停的问题

做程序的时候最常用的弹出大概就是Toast了.但有时候会发先一个特别尴尬的问题,就是:一旦你点击某个按钮次数多了,即使在程序退出后,Toast也弹个不停.什么原因造成的呢? 是这样的:我们为了方便,在写弹出Toast的时候通常使用的是Toast.makeText(this, "Toast测试", Toast.LENGTH_LONG).show();.弹出Toast过多恰恰就出现在这段代码本身.因为每调用一次这段代码程序就会重新创建一个Toast对象(Tost弹出的顺序是一个接一个的,也