• 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>

    效果图:

    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>

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

  • 相关阅读:
    [BZOJ1193][HNOI2006]马步距离 大范围贪心小范围爆搜
    [BZOJ2223][BZOJ3524][Poi2014]Couriers 主席树
    [BZOJ1069][SCOI2007]最大土地面积 凸包+旋转卡壳
    旋转卡壳 求凸多边形中面积最大的四边形
    [BZOJ2815][ZJOI2012]灾难 灭绝树+拓扑排序+lca
    [BZOJ2599][IOI2011]Race 点分治
    [BZOJ1455]罗马游戏 左偏树+并查集
    [BZOJ1295][SCOI2009]最长距离 最短路+枚举
    [LintCode] Climbing Stairs
    [Codeforces] MultiSet
  • 原文地址:https://www.cnblogs.com/robben/p/4325238.html
Copyright © 2020-2023  润新知