在使用Toast時,如果直接調用makeText函數,每次點擊就會創建一個Toast對象,後面的Toast對象會在前面的Toast顯示完以後依次顯示。
所以會導致點擊10次一直顯示幾十秒的情況,和我們平常使用的習慣不符。因此封裝一個ToastUtil類實現 每次點擊都顯示最後一個。
public class ToastUtil {
public static Toast mToast;
public void showMsg(Context context,String Msg) {
if (mToast == null) {
mToast = Toast.makeText(context,msg,Toast.LENGTH_LONG);
} else {
mToast.setText(msg);
}
mToast.show();
}
}
首先定義一個mToast,在第一次點擊時mToast == null,因此makeText創建一個Toast對象然後用show()顯示,在第二次點擊後只對mToast的文字顯示進行設置然後顯示。在這個過程中只在第一次點擊創建了一個Toast對象,在後面的點擊中,每點擊一次重設一次mToast然後顯示,因此只會顯示最後一個。
在Activity中調用:
ToastUtil.showMsg(getApplicationContext(),"有個性的Toast");
這樣就可以實現多次點擊不排隊,只顯示最後一個的功能。