標籤: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