PreferenceActivity用法

在开发应用程序的过程中我们有很大的机会需要用到参数设置功能,那么在Android应用中,我们如何实现参数设置界面及参数存储呢,下面我们来介 绍一下Android中的一个特殊Activity–PreferencesActivity。PreferencesActivity是Android 中专门用来实现程序设置界面及参数存储的一个Activity,我们用一个实例来简介如何使用PreferencesActivity。

下图是一个参数设置界面:
android-preference-screen-01
以此为例我们来介绍一下如何实现这个界面。首先建立一个xml来描述这个界面,文件为res/xml/preferences.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version ="1.0" encoding ="utf-8" ?>
<PreferenceScreen
 xmlns:android ="http://schemas.android.com/apk/res/android" >
    <PreferenceCategory android:title ="PreferenceCategory 1" >
        <CheckBoxPreference
            android:key ="CheckBox1"
            android:title ="CheckBox"
            android:summaryOn ="某功能: 开启"
            android:summaryOff ="某功能: 关闭"
            android:defaultValue ="true"
        />
    </PreferenceCategory>
    <PreferenceCategory android:title ="PreferenceCategory 2" >
        <PreferenceScreen android:title ="二级PreferenceScreen" >
            <CheckBoxPreference
                android:key ="CheckBox2"
                android:title ="CheckBox"
                android:summaryOn ="某功能: 开启"
                android:summaryOff ="某功能: 关闭"
                android:defaultValue ="true"
            />
        </PreferenceScreen>
    </PreferenceCategory>
    <PreferenceCategory android:title ="PreferenceCategory 3" >
    <ListPreference
        android:key ="ListPreference"
        android:title ="ListPreference"
        android:summary ="ListPreference测试"
        android:dialogTitle ="ListPreference"
        android:entries ="@array/entries_list_preference"
        android:entryValues ="@array/entriesvalue_list_preference"
    />
    <EditTextPreference
        android:key ="EditTextPreference"
        android:title ="EditTextPreference"
        android:summary ="点击输入"
        android:dialogTitle ="输入设置"
    />
    <RingtonePreference
        android:key ="RingtonePreference"
        android:title ="RingtonePreference"
        android:summary ="选择铃声"
    />
    </PreferenceCategory>
</PreferenceScreen>

这个例子中包括了PreferenceActivity中常见的几种组件,以下为具体介绍及用法:

PreferenceScreen :设置页面,可嵌套形成二级设置页面,用Title参数设置标题。

P referenceCategory :某一类相关的设置,可用Title参数设置标题。

CheckBoxPreference :是一个CheckBox设置,只有两种值,true或false,可用Title参数设置标题,用summaryOn和summaryOff参数来设置控件选中和未选中时的提示。

android-preference-screen-02

ListPreference : 下拉框选择控件,用Title参数设置标题,用Summary参数设置说明,点击后出现下拉框,用dialogTitle设置下拉框的标题,下拉框内显示 的内容和具体的值需要在res/values/array.xml中设置两个array来表示。图中的array.xml设置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version ="1.0" encoding ="utf-8" ?>
<resources>
<string-array name ="entries_list_preference" >
    <item> test1 </item>
    <item> test2 </item>
    <item> test3 </item>
</string-array>
<string-array name ="entriesvalue_list_preference" >
    <item> 1 </item>
    <item> 2 </item>
    <item> 3 </item>
</string-array>
</resources>

android-preference-screen-03

EditTextPreference :输入框控件,点击后可输入字符串设置。用Title参数设置标题,Summary参数设置说明,dialogTitle参数设置输入框的标题。

android-preference-screen-04

RingtonePreference :铃声选择框,点击后可选择系统铃声。Title参数设置标题,Summary参数设置说明,dialogTitle参数设置铃声选择框的标题。

android-preference-screen-05

以上是PreferenceActivity的xml描述,那么在程序中我们只需要新建一个继承自PreferenceActivity的 Activity,然后在主程序中调用就可以了。这个PreferenceActivity中的设置存储是完全自动的,你不需要再用代码去实现设置的存 储,PreferenceActivity创建后会自动创建一个配置文件/data/data/you_package_name /shared_prefs/you_package_name_you_xml_name.xml。上例中自动生成的配置文件如下:

1
2
3
4
5
6
7
8
<?xml version ='1.0' encoding ='utf-8' standalone ='yes' ?>
<map>
<string name ="EditTextPreference" > 12332312 </string>
<string name ="ListPreference" > 2 </string>
<string name ="RingtonePreference" > content://settings/system/ringtone </string>
<boolean name ="CheckBox1" value ="true" />
<boolean name ="CheckBox2" value ="true" />
</map>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值