PreferenceActivity用法简介

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参数设置标题。

PreferenceCategory:某一类相关的设置,可用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:输入框控件,点击后可输入字符串设置。用Title参数设置标题,Summary参数设置说明,dialogTitle参数设置输入框的标题。

EditTextPreference

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值