自定义Toast和通过线程限制Toast显示

来源:互联网 发布:淘宝网店运营托管怎样 编辑:程序博客网 时间:2024/06/08 01:52

一 : 自定义Toast 

public class ToastView {      public static Toast toast;   private int time;   private Timer timer;      public ToastView(Context context, String text) {      LayoutInflater inflater = LayoutInflater.from(context);      View view = inflater.inflate(R.layout.toast_view, null);      TextView t = (TextView) view.findViewById(R.id.toast_text);      t.setText(text);      if(toast != null) {         toast.cancel();      }      toast = new Toast(context);      toast.setDuration(Toast.LENGTH_SHORT);      toast.setView(view);   }      public ToastView(Context context, int text) {      LayoutInflater inflater = LayoutInflater.from(context);      View view = inflater.inflate(R.layout.toast_view, null);         TextView t = (TextView) view.findViewById(R.id.toast_text);      t.setText(text);      if(toast != null) {         toast.cancel();      }      toast = new Toast(context);      toast.setDuration(Toast.LENGTH_SHORT);      toast.setView(view);   }      //设置toast显示位置   public void setGravity(int gravity, int xOffset, int yOffset) {      //toast.setGravity(Gravity.CENTER, 0, 0); //居中显示      toast.setGravity(gravity, xOffset, yOffset);   }      //设置toast显示时间   public void setDuration(int duration) {      toast.setDuration(duration);   }      //设置toast显示时间(自定义时间)   public void setLongTime(int duration) {      //toast.setDuration(duration);      time = duration;      timer = new Timer();        timer.schedule(new TimerTask(){           @Override           public void run() {                             if(time-1000 >= 0) {                 show();                 time= time - 1000;              } else {                 timer.cancel();              }           }        }, 0, 1000);   }      public void show() {      toast.show();   }      public static void cancel() {      if(toast != null) {         toast.cancel();      }   }}
这样用的~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ToastView toast = new ToastView(getBLApplication(), "请确保上一个设备断开蓝牙连接");toast.setLongTime(30000);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();


// 二 : 通过线程限制Toast显示(解决每点一下,就弹出一个Toast,点击次数过多的话....)


public static void toastMessage(final Context context,                                final String message, final int duration) {    Handler handler = new Handler(context.getMainLooper());    handler.post(new Runnable() {        @Override        public void run() {            Toast.makeText(context, message, duration).show();        }    });}




0 0
原创粉丝点击