[Android]自訂Toast

來源:互聯網
上載者:User

標籤:toast   android   自訂   

Toast,在Android開發中常常會遇到,但是,我們總是會遇到一個問題,那便是當我們使用按鈕監聽彈出Toast的時候,假如不斷點擊按鈕,將會不斷地彈出Toast,而這一篇文章便是為瞭解決這個問題而編寫的。

同時,為了節約app資源和方便使用,便使用單例模式來實現自訂Toast。

(1)建立MyToast類,並且定義以下成員變數,以及部分更改器:

private static final Object SYNC_LOCK = new Object();private static Toast mToast;/** 上下文 */public static Context context;public static Context getContext() {return context;}public static void setContext(Context context) {MyToast.context = context;}

(2)建立初始化Toast的方法:

/** * 擷取toast環境,為toast加鎖 *  * @param context * @return */private static void initToastInstance() {if (mToast == null) {synchronized (SYNC_LOCK) {if (mToast == null) {mToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);}}}}

在這裡使用了鎖,並雙重判斷,保證了Toast的唯一性,避免出現了多個Toast。

(3)建立顯示Toast的方法:

/** * 展示多士 *  * @param context *            環境 * @param text *            內容 */public static void showToast(String text, Context context) {setContext(context);if (getContext() != null && text != null) {initToastInstance();mToast.setDuration(Toast.LENGTH_SHORT);mToast.setText(text);mToast.show();}}
(4)使用以下代碼顯示Toast。

MyToast.showToast("MyToast", MainActivity.this);

(5)運行效果:


無論點擊多少次都是圖中的效果,不會說多次點擊之後,等一個Toast消失後,出現另外一個Toast。


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

[Android]自訂Toast

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.