我們在前面的例子Android ApiDemo樣本解析(9):App->Activity->Persistent State 介紹了可以使用Shared Preferences來儲存一些狀態,Shared Preferences更一般的用法是用來儲存一些應用程式偏好(設定)。 包 android.preference 提供了很多類可以方便應用程式來顯示和設定應用相關的偏好。當然你可以使用自訂的UI來配置這些程 序偏好。但使用android.preference中定義的類可以給使用者一個統一的UI (和Android本身的Settings一致)。
通常情況下 ,程式偏好使用單獨的Activity(派生於PreferenceActivity)來完成。在PreferenceActivity中,PreferenceScreen為Layout 的root element ,它可以包含其它如:CheckBoxPreference ,EditTextPreference, ListPreference ,PreferenceCategory或 RingtonPreference. 使用Preference時所有程式偏好將會自動儲存在應用程式的SharedPreferences中, 應用可以通過 getSharedPreferences() 來訪問這些喜好設定。
CheckBoxPreference 使用Checkbox 來顯示某個配置項。
EditTextPreference 使用文字框來顯示某個牌子項,允許接受使用者輸入文本。
ListPreference 使用一組單選鈕 (列表)可以從中選擇某一項。
MultiSelectListPreference 使用一組Checkbox,允許該配置項有多值。
RingtonPreference 允許使用者從選取某個鈴聲
這些類的基類為Preference ,以它為基類,也可以定義自訂的Preference.
PreferenceGroup 可以為多個Preference定義一個組,PreferenceCategory, PreferenceScreen為它的子類。
PreferenceCategory 同樣可以包含多個Preferneces ,如果該組被Disable時,可以提供一個標題。
PreferenceScreen 為 Preferences階層的根項目,PreferenceScreen可以實現嵌套。內層的PreferenceScreen將會使用 一個新的螢幕顯示,有點類似於Word中的分頁功能。
Preferences from XML 介紹了使用XML來定義應用程式偏好,並使用PreferenceActivity來顯示這個偏好。