我们在前面的例子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来显示这个偏好。