当前位置: 代码迷 >> Android >> Android进阶篇-Toast自定义展示时间
  详细解决方案

Android进阶篇-Toast自定义展示时间

热度:57   发布时间:2016-05-01 10:00:53.0
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);     } }

?

  相关解决方案