【經驗小談】android4.2之後Toast定義的一個特點This Toast was not created with Toast.makeText()

Andriod學習不深奧,經驗全從實踐來

大家好,今日經驗分享之~ 受控的Toast

 java.lang.RuntimeException: This Toast was not created with Toast.makeText()

大家都想製作一個Toast的單例,這樣的話我們就不用看到滿屏彈不完的“土司了”,

1、用handler及時的清除現在的這個toast,接受新的然後顯示

2、就是利用toast的單例來進行


第二種方式無疑是最方便,最爲簡單的方式,但是android4.2之後如果你想做Toast單例的話如下圖

public static void showToast(Context context, int text) {
		if (toast == null) {
			toast = new Toast(context);
		}
		toast.setDuration(Toast.LENGTH_SHORT);
		toast.setText(text);
		toast.show();
	}

這樣已經給不行了,因爲系統會報錯提示你,Toast was not make from makeText...

那麼如何解決這個問題呢?


應該用這種方式來進行

/**
	 * 極簡吐司提示
	 * @param context
	 * @param text
	 */
	public static void showToast(Context context, int text) {
		if (makeText==null) {
			makeText = Toast.makeText(context, "", Toast.LENGTH_SHORT);
		}
		makeText.setText(text);
		makeText.show();
	}


再試試,看還有這個問題了嗎?問題就是這麼解決的,對於問題我們應該用正確的做法去不斷的嘗試


轉載請註明出處



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章