Actionbarsherlock Demo 浅析 :Preference

本文详细介绍Android系统中的首选项(Preference)及其应用场景,包括各种类型的首选项控件如CheckBoxPreference、EditTextPreference等,并解释如何在XML中定义它们以及如何在Activity中使用。

              Preference(首选项)在Android系统视图中运用比较多,特别是系统设置的UI。Preference与View大体相同,但Preference的优点在于布局界面的可控性和高效率以及可存储值的简洁性(每个PreferenPreferencece存储在相对应下的SharedPreference文件夹下)。利用了Preference的存储特性,当用户点击某个选项的时候,它能够将选项记录下来,当用户再次打开Activity时,上次用户的选择不会初始化,而是沿用上次的选择,这样就简化了Android应用配置的开发。


Activity:

                  addPreferencesFromResource(R.xml.preferences);//引入首选项

preferences.xml:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<
    <PreferenceCategory
            android:title="@string/inline_preferences">
        <!-- 单选项 -->
        <CheckBoxPreference
                android:key="checkbox_preference"
                android:title="@string/title_checkbox_preference"
                android:summary="@string/summary_checkbox_preference" />

    </PreferenceCategory>

    <PreferenceCategory
            android:title="@string/dialog_based_preferences">
        <!--EditText -->
        <EditTextPreference
                android:key="edittext_preference"
                android:title="@string/title_edittext_preference"
                android:summary="@string/summary_edittext_preference"
                android:dialogTitle="@string/dialog_title_edittext_preference" />
        <!—List -->
        <ListPreference
                android:key="list_preference"
                android:title="@string/title_list_preference"
                android:summary="@string/summary_list_preference"
                android:entries="@array/entries_list_preference"
                android:entryValues="@array/entryvalues_list_preference"
                android:dialogTitle="@string/dialog_title_list_preference" />

    </PreferenceCategory>

    <PreferenceCategory
            android:title="@string/launch_preferences">

        <PreferenceScreen
                android:title="@string/title_intent_preference"
                android:summary="@string/summary_intent_preference">

            <intent android:action="android.intent.action.VIEW"
                    android:data="http://www.android.com" />

        </PreferenceScreen>

    </PreferenceCategory>

    <PreferenceCategory
            android:title="@string/preference_attributes">

        <CheckBoxPreference
                android:key="parent_checkbox_preference"
                android:title="@string/title_parent_preference"
                android:summary="@string/summary_parent_preference" />

        <!-- The visual style of a child is defined by this styled theme attribute. -->
        <CheckBoxPreference
                android:key="child_checkbox_preference"
                android:dependency="parent_checkbox_preference"
                android:layout="?android:attr/preferenceLayoutChild"
                android:title="@string/title_child_preference"
                android:summary="@string/summary_child_preference" />

    </PreferenceCategory>

</PreferenceScreen>

单一控件:

Preference 控件

View控件

含义

Preference

TextView

文本框

CheckPreference

CheckBox

单选框

EditTextPreference

EditText

可输入文本框

ListPreference

ListView

列表框

RingtonePreference

——

铃声

               
组合控件:

                     PreferenceCategory :类似于LinearLayou、RelativeLayout,用于组合一组Preference,使布局更具备层次感 。

                     PreferenceScreen  : 所有Preference元素的根节点。


Preference元素的通用XML Attributes说明:   
android:key每个Preference控件独一无二的”ID”,唯一表示此Preference

android:defaultValue

默认值。 例如,CheckPreference的默认值可为”true”,默认为选中状态。 EditTextPreference的默认值可为”110”
android:enabled表示该Preference是否可用状态
android:title 每个Preference在PreferenceScreen布局上显示的标题——大标题
android:summary 每个Preference在PreferenceScreen布局上显示的标题——小标题(可以没有)

android:persistent

表示Preference元素所对应的值是否写入sharedPreferen文件中,如果是true,则表示写 入;否则,则表示不写入该Preference元素的值。

android:dependency

表示一个Preference(用A表示)的可用状态依赖另外一个Preference(用B表示)。B可用, 则A可用;B不可用,则A不可用。

android:disableDependentsStateandroid:dependency相反。B可用,则A不可用;B不可用,则A可用。

                                                                                                                    参考:http://blog.youkuaiyun.com/qinjuning                                     


           <CheckBoxPreference
                android:key="checkbox_preference"
                android:title="@string/title_checkbox_preference"
                android:summary="@string/summary_checkbox_preference" />

效果:

360手机助手截图0806_10_54_01


              <EditTextPreference
                android:key="edittext_preference"
                android:title="@string/title_edittext_preference"
                android:summary="@string/summary_edittext_preference"
                android:dialogTitle="@string/dialog_title_edittext_preference" />
效果:

360手机助手截图0806_10_54_02


            <ListPreference
                android:key="list_preference"
                android:title="@string/title_list_preference"
                android:summary="@string/summary_list_preference"
                android:entries="@array/entries_list_preference"
                android:entryValues="@array/entryvalues_list_preference"
                android:dialogTitle="@string/dialog_title_list_preference" />
效果:

360手机助手截图0806_10_54_03 


        <PreferenceScreen
                android:title="@string/title_intent_preference"
                android:summary="@string/summary_intent_preference">

            <intent android:action="android.intent.action.VIEW"
                    android:data="http://www.android.com" />

        </PreferenceScreen>

效果:

360手机助手截图0806_10_55_01


        <CheckBoxPreference
                android:key="parent_checkbox_preference"
                android:title="@string/title_parent_preference"
                android:summary="@string/summary_parent_preference" />

        <!-- 底下的选项依赖于上面的选项 -->
        <CheckBoxPreference
                android:key="child_checkbox_preference"
                android:dependency="parent_checkbox_preference"
                android:layout="?android:attr/preferenceLayoutChild"
                android:title="@string/title_child_preference"
                android:summary="@string/summary_child_preference" />
效果:

360手机助手截图0806_10_55_02  360手机助手截图0806_10_55_03

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值