Android 应用中的偏好设置与状态保存
1. 偏好设置文件的创建
首次运行相关代码后,即便尚未调用偏好设置屏幕,在 shared_prefs
文件夹中也能看到偏好设置的 XML 文件,同时还会有一个名为 _has_set_default_values.xml
的文件。该文件会告知应用,偏好设置的 XML 文件已使用默认值创建。 setDefaultValues()
方法的第三个参数设为 false
,意味着仅在偏好设置的 XML 文件还未设置默认值时才进行设置。Android 通过这个新的 XML 文件来记住这些信息。不过,当应用升级并添加带有新默认值的设置时,之前的方法无法设置这些新的默认值。因此,最好始终使用资源来设置默认值,并在获取偏好设置的当前值时,始终将该资源作为默认值提供。
2. 理解 ListPreference
2.1 基本概念
ListPreference
为每个选项提供单选按钮,默认(或当前)选项会预先选中,用户只能选择其中一个选项。用户选择选项后,对话框会立即关闭,所选选项会保存到偏好设置的 XML 文件中。
2.2 XML 定义示例
<ListPreference
android:key="@string/flight_sort_option"
android:title="@string/listTitle"
android:summary="@s