在下面的一段设置参数中,
<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参数设置铃声选择框的标题。
本文深入解析了Android PreferenceScreen布局中的关键组件,包括如何定义和使用UseNetModeListPreference、ListPreference、EditTextPreference和RingtonePreference等组件,详细介绍了各个组件的属性和用途,同时提供了一个实例代码来辅助理解。
2885

被折叠的 条评论
为什么被折叠?



