zoukankan      html  css  js  c++  java
  • Android进阶篇Toast自定义显示时间

    public class CustomToast { 
        public static final int LENGTH_MAX = -1; 
        private boolean mCanceled = true;
        private Handler mHandler; 
        private Context mContext; 
        private Toast mToast; 
    
        public CustomToast(Context context) { 
            this(context,new Handler()); 
        } 
    
    
        public CustomToast(Context context,Handler h) { 
            mContext = context; 
            mHandler = h; 
            mToast = Toast.makeText(mContext,"",Toast.LENGTH_SHORT); 
            mToast.setGravity(Gravity.BOTTOM, 0, 0); 
        } 
    
        public void show(int resId,int duration) { 
            mToast.setText(resId); 
            if(duration != LENGTH_MAX) { 
                mToast.setDuration(duration); 
                mToast.show(); 
             } else if(mCanceled) { 
                 mToast.setDuration(Toast.LENGTH_LONG);
                 mCanceled = false;
                 showUntilCancel(); 
             } 
        }
        
        /**
         * @param text 要显示的内容
         * @param duration 显示的时间长
         * 根据LENGTH_MAX进行判断
         * 如果不匹配,进行系统显示
         * 如果匹配,永久显示,直到调用hide()
         */
        public void show(String text,int duration) { 
            mToast.setText(text); 
            if(duration != LENGTH_MAX) { 
                mToast.setDuration(duration); 
                mToast.show(); 
                } else { 
                    if(mCanceled) { 
                        mToast.setDuration(Toast.LENGTH_LONG); 
                        mCanceled = false; 
                        showUntilCancel();
                    }
                } 
            } 
    
        /**
         * 隐藏Toast
         */
        public void hide(){
            mToast.cancel();
            mCanceled = true;
        }
        
        public boolean isShowing() {
            return !mCanceled;
        }
        
        private void showUntilCancel() { 
            if(mCanceled) 
                return; 
            mToast.show();
            mHandler.postDelayed(new Runnable() {
                public void run() { 
                    showUntilCancel(); 
                }
            },3000); 
        } 
    } 
  • 相关阅读:
    AD预测论文研读系列2
    hdu 5795
    sg函数的应用
    二分查找
    快速幂
    筛选法素数打表
    多校hdu-5775 Bubble sort(线段树)
    多校hdu5754(博弈)
    多校hdu5738 寻找
    多校hdu5726 线段树+预处理
  • 原文地址:https://www.cnblogs.com/gongcb/p/2494539.html
Copyright © 2011-2022 走看看