標籤:
學習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, "提示資訊");
android之Toast多次提示延時處理