Android 如何顯示氣泡訊息(Toast 用法)?


當使用者在使用Android App時,可以讓App跳出一些浮動式、會自動關閉的的訊息提示使用者應該要做哪些動作,或者是App已經完成了哪些動作,讓使用者清楚知道目前App的執行狀況。要如何在Android實作出氣泡訊息呢?很簡單,在Android SDK中就有內建「Toast」類別可以做到這樣的功能。

Toast的使用方法

簡易作法

最簡單顯示出氣泡訊息的作法,就是直接使用Toast類別下的makeText方法來產生出一個Toast物件,再用show方法將這個Toast物件顯示出來。如以下程式碼:

其中需要注意的是duration這個參數,duration顧名思義就是Toast訊息顯示的持續時間,只有兩個整數數值有作用,分別是短時間的「Toast.LENGTH_SHORT」和長時間的「Toast.LENGTH_LONG」。在預設的情況下,短時間大約是2秒、而長時間大約是3.5秒。

直接使用makeText產生出來的Toast,樣式和位置由系統來決定,如下圖是直接使用Toast的makeText方法和show方法顯示出來的氣泡訊息

Android 如何顯示氣泡訊息(Toast 用法)?

用這種方式來顯示出氣泡訊息的話,會有一個很大的缺點,那就是如果在氣泡訊息尚未消失前,又使用了一次makeText方法和show方法,新的氣泡訊息就會被安排在舊的氣泡訊息消失後才會顯示,而不是立刻將舊的氣泡訊息蓋過(墊在下面),也不是直接改變舊氣泡訊息的文字。當氣泡訊息一多,可是要等很久才可以把所有的訊息顯示完哦!

進階作法

為了避免發生上述使用簡易作法產生的問題,我們必須要管理makeText之後所得到的Toast物件。可以使用一個物件變數或是類別變數來儲存Toast物件的參考,以供重複使用。如以下程式:

有了上面的程式後,只要呼叫makeTextAndShow方法就可以顯示出不會排隊延遲的氣泡訊息了!

自訂Toast的樣式

直接使用makeText產生出來的Toast物件,是使用系統內建的樣式,因此可能會因App執行在不同的Android裝置上而有所改變。如果想要自訂Toast的樣式,就不該使用makeText方法,應該直接用new實體化一個新的Toast物件,接著再指定一個View給他,可以將上面的makeTextAndShow方法改寫如下:

執行結果:

Android 如何顯示氣泡訊息(Toast 用法)?

自製Toast類別

由於Toast訊息算是Android App常用到的功能,因此可以將它另寫成一個類別來處理:

Toast.java

ToastView.java

用法舉例

執行結果:

Android 如何顯示氣泡訊息(Toast 用法)?

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章