學習android的人應該都明白Toast是用來做做什么的,在這里就不多說了。
Toast提示出現后會停留一段時間,在這段時間內再次執行Toast會有時間延遲,即上一次提示消失后下一次才出現。這時我們希望信息能及時更新。
解決思路:當前沒有提示信息時正常執行;當前有提示信息時新信息覆蓋原來的信息。
法一:創建一個ToastShow類,用於封裝此功能
import android.content.Context; import android.view.Gravity; import android.widget.Toast; public class ToastShow { private Context context; //在此窗口提示信息 private Toast toast = null; //用於判斷是否已有Toast執行 public ToastShow(Context context) { this.context = context; } public void toastShow(String text) { if(toast == null) { toast = Toast.makeText(context, text, Toast.LENGTH_SHORT); //正常執行 } else { toast.setText(text); //用於覆蓋前面未消失的提示信息 } toast.show(); } }
在需要此功能的窗口中使用
ToastShow toast = new ToastShow(this); toast.toastShow("提示信息");
法二:創建一個ToastShow類,用於封裝此功能
import android.content.Context; import android.widget.Toast; /** * 自定義Toast * @author Administrator * */ public class ToastUtils { protected static Toast toast = null; private static String oldMsg; private static long oneTime = 0; private static long twoTime = 0; public static void showToast(Context context, String s){ if(toast==null){ toast =Toast.makeText(context, s, Toast.LENGTH_SHORT); toast.show(); oneTime=System.currentTimeMillis(); }else{ twoTime=System.currentTimeMillis(); if(s.equals(oldMsg)){ if(twoTime-oneTime>Toast.LENGTH_SHORT){ toast.show(); } }else{ oldMsg = s; toast.setText(s); toast.show(); } } oneTime=twoTime; } public static void showToast(Context context, int resId){ showToast(context, context.getString(resId)); } }
在需要此功能的窗口中使用
ToastUtils.showToast(this, "提示信息");