在下面的一段设置参数中,
- <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.phone">
- <com.android.phone.UseNetModeListPreference
- android:key="button_gsm_umts_network_preferences_mode_key"
- android:title="@string/gsm_umts_network_preferences_title"
- android:summary="@string/gsm_umts_network_preferneces_summary"
- android:entries="@array/ver_count_entry_text"
- android:entryValues="@array/ver_count_entry_value"
- android:dialogTitle="@string/gsm_umts_network_preferences_dialogtitle"
- android:persistent="false" android:autoText="false" />
- ...
- /PreferenceScreen>
虽然android文档里面有,但是是英文的。还是翻译过来看着舒服,也为自己记录下来。
android:key: 通过key-value 的形式获取,其中key是xml控件标签中key属性对应的值. 例如,findPreference(“button_gsm_umts_network_preferences_mode_key”);获取具体组件。
android:entries和android:entryValues,也就是说只需要定义两个数组,就可以快速构建一个ListPreference,用户看的是enties,程序实际返回的是entryValues。于是在arrays.xml中,定义如下两个数组:
- <resources>
- <string-array name="ver_count_entry_text">
- <item>two</item>
- <item>three</item>
- <item>four</item>
- <item>five</item>
- </string-array>
- <integer-array name="ver_count_entry_value">
- <item>2</item>
- <item>3</item>
- <item>4</item>
- <item>5</item>
- </integer-array>
- </resources>
android:dialogTitle:The title in the dialog.
android:summary: The summary for the Preference in a PreferenceActivity screen.
android:persistent 为true时,系统会帮助我们去保存该设置,即使重启后依然能记忆之前的设置,这也是所谓的持久化 。这里 将 android:persistent设置为False,表明不需要让系统去做持久化,开发者系统通过自己的方式去实现持久化。
android:autoText:自动拼写帮助
CheckBoxPreference 是一个CheckBox设置,只有两种值,true或false,可用Title参数设置标题,用summaryOn和summaryOff参数来设置控件选中和未选中时的提示。
ListPreference:下拉框选择控件,用Title参数设置标题,用Summary参数设置说明,点击后出现下拉框,用dialogTitle设置下拉框的标题
EditTextPreference:输入框控件,点击后可输入字符串设置。用Title参数设置标题,Summary参数设置说明,dialogTitle参数设置输入框的标题。
RingtonePreference:铃声选择框,点击后可选择系统铃声。Title参数设置标题,Summary参数设置说明,dialogTitle参数设置铃声选择框的标题。