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);