现在做公司任务的时候,经常会要去读Settings的源码,然后发现在xml文件中几乎全是用的preferenceScreen和preferenceCategory标签,很少有用布局和控件的,然后我就自己上网看了很多有关的资料,在此总结下。
首先在res目录下,新建一个命名为xml的文件夹,然后建立一个aaa.xml文件,选择resource标签。
先使用PreferenceCategory,代码如下
1 <PreferenceCategory android:title="显示一排偏好" > 2 <CheckBoxPreference 3 android:key="checkbox_pre" 4 android:summary="这是一个开关按钮" 5 android:title="开关偏好" /> 6 </PreferenceCategory>
效果图:
PreferenceCategory相当于分组,把同一类的选项放在同一块区域。
再来看看PreferenceScreen,代码如下
1 <PreferenceScreen 2 android:key="screen_pre" 3 android:summary="显示另一个偏好屏幕" 4 android:title="屏幕" > 5 <CheckBoxPreference 6 android:key="next_screen_checkbox_pre" 7 android:summary="另一个屏幕上的偏好" 8 android:title="开关偏好" /> 9 </PreferenceScreen>
如图, ,然后发现没有checkbox显示
因为PreferenceScreen是可以点进去的,点击该选项,进入就可以看到checkbox了
然后看看ListPreference,一般都嵌在PreferenceScreen中使用,看起来比较舒服,代码如下
<PreferenceScreen android:title="基于对话框的偏好" > <ListPreference android:dialogTitle="选择一个" android:entries="@array/auto_update_frequency_entry" android:entryValues="@array/auto_update_frequency_value" android:key="list_pre" android:summary="使用一个列表对话框" android:title="列表偏好" > </ListPreference> </PreferenceScreen>
点击该screen,listPreference会像dialog一样弹出来,如图
android:entries和android:entryValues两个属性的值来源:
在values目录下建立一个array.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="auto_update_frequency_entry"> <item >10分钟</item> <item >30分钟</item> <item >1小时</item> <item >12小时</item> <item >24小时</item> </string-array> <string-array name="auto_update_frequency_value"> <item >10</item> <item >30</item> <item >60</item> <item >720</item> <item >1440</item> </string-array> </resources>
目前大概就了解了这些,以后有什么再补充