Android Toast 顯示時間問題的探討

       我想,看到這篇文章的你對Toast並不陌生,可以這樣說,Toast的作用就是提示用戶。一般爲了到達更好地用戶體驗效果,我們可以自定義Toast的顯示效果,包括樣式、顯示時間等。這裏我只對Toast的顯示時間問題與大家分享一下我的經驗。

我們知道Toast的默認顯示時間有兩個,分別爲Toast.LENGTH_SHORT和Toast.LENGTH_LONG,當然我們也可以根據需要自定義Toast顯示時間的長短,這個問題不是本文的重點,在這裏不做介紹。下面開始我們的重點。使用過Toast的你,也許與我一樣也遇到過這樣的問題:我們在幾個Button的點擊事件中都添加Toast提醒消息,當逐個點擊這些Button後,Toast消息會疊加出現,持續一個相對長的時間,並且當我們關閉此應用時,Toast消息還在顯示。出現這種情況是因爲每次Toast提示的時間疊加的結果,比如,第一個Toast出現的時間爲1s,那麼第二個就要等待1s後才能出現,這樣就會造成時間的累加,致使顯示時間增加。顯然我們在做應用時並不希望出現此種情況,那麼這裏給出我的用過的一個方法。如果我們的應用使用Toast頻繁,建議對此單獨建個類以使代碼不至於那麼冗雜,我們用起來也方便。

ToastShow.class:

public class ToastShow {
	private Context context;
	private Toast toast = null;
	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();
	}
}

使用這段代碼用於顯示Toast就不會出現時間地疊加,下面分析一下。個人認爲只是一個Toast在不停的顯示,只是其內容(也就是出現的提示消息)不同,當Toast=null時,出現一個Toast,如果這個Toast還沒有消失時就要出現第二個,那麼只是使用其setText()方法改變了內容,文檔對setText()方法地解釋是:

Update the text in a Toast that was previously created using one of the makeText() methods.

也就是:更新之前創建的一個使用makeText()方法的Toast裏的文本。看到這也許你就明白了。

最後說一句:分享有益、轉載請註明出處:http://blog.csdn.net/zjbpku/article/details/7930764







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