《Android》『Enum』- 如何透過 Enum 來控管程式的狀態

《Android Developers 參考文獻》

➥Enum

 

《簡單介紹》

Enum 是列舉的意思,從實務上來看,我們常常利用它來定義一個物件的不同狀態,或者是程式碼執行過程中的不同階段,透過 Enum 宣告的方式,我們可以把一些原本用常數判斷的狀態賦予意義,讓程式開發者在使用時可以更直覺的使用。

 

《Enum 的使用方式》

這邊我們重新實作一次 Handler 文章中所用的程式碼範例,以完成一個 ProgressBar 進度條,首先,我們必須宣告一個用來表示各個狀態的 Enum 類別,程式碼如下 –

Messages Enum

在 enum 裡面所宣告的成員皆為一個相同類型的常量,在這裡我們將它設為常數,因此我們在宣告的同時可以定義每個成員的值,這邊我們分別定義了三個成員來代表程式在不同階段的狀態,並定義了設定與取得 Message 狀態的兩個方法。

 接著,宣告一個繼承 Handler 的類別,自訂其名稱為 MainHandler,程式碼片段如下 –

MainHandler.class

我們自訂了一個名為 MainHandler 的類別,並在裡面的 handleMessage(Message msg) 中,定義了接收到不同的 msg.what 所要執行的動作,其中 msg 亦可以透過夾帶 bundle 的方式,帶入所需的參數。

最後,我們新增一個子線程(mThread),並宣告一個基於 MainHandler 類別的物件 mMainHandler,程式碼片段如下 –

狀態控管機制

在之前的例子中,我們透過 sendMessage() 與 sendEmptyMessage() 的方式,分別處理帶有參數以及沒有帶參數的狀態回傳,程式碼不免有些冗長,這邊我們自行定義了一個 sendHandler(Messages status, Bundle data) 方法,一次處理掉兩種狀況,若是沒有帶參數,則在 bundle 欄位傳入 null 即可。

賽肥膩膩

我們是低調到不行的肥膩夫妻檔,一路上一邊吵鬧一邊記錄著生活大小事,最近迷上了宅在家追劇,希望能透過文字將所有看過的影集好好紀錄,整理成屬於我們自己的回憶資料庫。

上 / 下一篇文章

臉書留言

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *