转载

Android中preference标签的使用

现在做公司任务的时候,经常会要去读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>

效果图:

Android中preference标签的使用

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>

如图, Android中preference标签的使用 ,然后发现没有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中preference标签的使用

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> 

目前大概就了解了这些,以后有什么再补充

正文到此结束
Loading...