zoukankan      html  css  js  c++  java
  • 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, "提示信息");
  • 相关阅读:
    git
    node cheerio
    Git是目前世界上最先进的分布式版本控制系统
    精华 ionic入门之色彩、图标、边距和界面组件:列表
    如何将腾讯视频的qlv格式转换为mp4格式
    php无限级分类实战——评论及回复功能
    Yii2 前后台登陆退出分离、登陆验证
    linux 更改文件所属用户及用户组
    wdcp 开启某个Mysql数据库远程访问
    Rem实现自适应初体验
  • 原文地址:https://www.cnblogs.com/kangweifeng/p/4887465.html
Copyright © 2011-2022 走看看