歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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裡的文本。看到這也許你就明白了。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved