[Android] Toast 調整顯示時間與刪除重複出現的Toast

今天分享的東西有兩個
1. 如何調整 Toast 顯示的時間
2. 如果因為程式流程的問題導致User連續按了很多個Toast出來,該怎麼辦?!


小弟我的做法很簡單

就是 [客製化一個屬於自己的 Toast!!]
/**
 * 這是一個客製化的 Toast
 * @author Jakevin
 */
import android.content.Context;
import android.os.Handler;
import android.util.Log;
import android.widget.Toast;

public class CustomToast {

 private static Toast mToast;
 private static Handler mHandler = new Handler();
 private static Runnable r = new Runnable() {
  public void run() {
   mToast.cancel();
  }
 };
 public static void showToast(Context mContext, String text, int duration) {
 
  mHandler.removeCallbacks(r);
  if (mToast != null)
   mToast.setText(text);
  else
   mToast = Toast.makeText(mContext, text, Toast.LENGTH_SHORT);
  mHandler.postDelayed(r, duration+1000);
  mToast.show();
 }
 
 public static void showToast(Context mContext, int resId, int duration) {
  showToast(mContext, mContext.getResources().getString(resId), duration);
 }
 
}

然後再想要顯示 Tosat的地方改成下面的Code
//如果你是要帶字串
 CustomToast.showToast(mContext, "這是一個客製化的Toast...", Toast.LENGTH_SHORT);

 //如果你的字串是寫在 String.xml裡頭的話
 CustomToast.showToast(mContext, R.string.ToastText, Toast.LENGTH_SHORT);

提醒

本站內容即日起將轉到另一站上轉跳~