`

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>
分享到:
评论
1 楼 tanghanlin 2011-02-28  
你不会使用 javaEye的 code功能么

相关推荐

    PreferenceActivity用法简介Android X

    PreferenceActivity用法简介 Android X

    PreferenceActivity 类的使用,它可以保存设置

    这个示例 PreferenceActivity 类的用法,它可以保存设置

    android 开发技巧合集

    2.1.9、PreferenceActivity 用法 22 2.1.10、Dialog风格的Activity 23 2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是Service 26 2.3.2、如何使用Service 27 ...

    PreferenceActivity

    SharedPreferences使用方便,所以经常用SharedPreferences保存配置信息。Android SDK提供的更容易的方法,这就是PreferenceActivity。

    Android至PreferenceActivity

    android 开发者指南 ,我们看到Android系统本身就大量...看出来了吧,Preference,对就是使用SharedPreferneces以键值对的形式进行保存的,当然,我们也可以通过SharedPreferences来获取PreferenceActivity设置的值。

    Android开发技巧总汇(个人总结)

    16.PreferenceActivity 用法 22 17.通过HttpClient从指定server获取数据 22 18.拖动Button获得位置 23 19.代码安装apk包 25 20.给模拟器打电话发短信 26 21.从google搜索内容 26 22.浏览网页 26 23.显示地图...

    Android 开发技巧

    2.1.9、PreferenceActivity 用法 22 2.1.10、Dialog风格的Activity 23 2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是Service 26 2.3.2、如何使用Service 27 ...

    Android开发资料合集-World版!

    2.1.9、PreferenceActivity 用法 22 2.1.10、Dialog风格的Activity 23 2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是Service 26 2.3.2、如何使用Service 27 ...

    PreferencexmlDemo.zip

    1、使用XML定义Preference。 2、运行环境android studio。 3、此方法有点过时,不太建议使用,但目前还可以用。让Activity继承PreferenceActivity,然后在重写onCreate方法,添加preferences.xml作为显示界面。

    PreferenceDemo(包含回调方法)

    PreferenceFragment偏好设置的Demo,它会自动保存用户数据,上次修改后下一次自动生效,不需要重新配置。用它来做app的设置界面或者...Android3.0以前我们使用PreferenceActivity基类去显示给用户一个选项设置的界面。

    slidingmenu

    1.可能报找不到getSupportActionBar等ActionBarSherLock的方法。原因是使用ActionBarSherLock的Activity需继承于SherlockActivity,修改SlidingMenu liberary(slidingmenu_lib)中的 SlidingFragmentActivity,让它...

    Android布局——Preference自定义layout的方法

    导语:PreferenceActivity是一个方便设置管理的界面,但是对于界面显示来说比较单调,所以自定义布局就很有必要了。本文举例说明在Preference中自定义layout的方法。笔者是为了在设置中插入@有米v4广告条才研究了一...

    android-ipcam:基于libstreaming库的安卓IP摄像头

    在工具栏上有投两个按钮(这将启动/停止RTSP服务器-流媒体),并设置导致PreferenceActivity。 首次运行应用程序时需要指定服务器 url。 默认情况下,我的本地服务器 ( ) 设置了一个 IP 地址。 转到设置并更改唯一...

    ColorPickerPreference-功能很完善的颜色选择控件.zip

    功能很完善的颜色选择控件,不过,demo只是演示了如何在PreferenceActivity中ColorPickerPreference,其实完全可以在一般的布局中调用它的ColorPickerDialog类,这样适用范围更广一些。项目地址:...

Global site tag (gtag.js) - Google Analytics