Android开发教程:PreferenceActivity使用简介

来源:互联网 发布:西安中软博通软件 编辑:程序博客网 时间:2024/06/05 03:08

转:http://liuzhichao.com/p/528.html

当我们的应用需要保存用户设置信息的时候,你可能会想到用之后学习过的Activity+Preference来完成,前者用于界面构建 后者用于保存用户的设置信息。这理论上来讲这是可行的,但是实际操作起来却是一件很繁琐的事情,特别是当设置项较多的时候, 每个设置选项都要建立与其对应的Preference,还要即时保存用户设置的改变。其实Android已经为我们提供了用于设置界面的组件,那就是PreferenceActivity。Android系统本身就大量用到了PreferenceActivity来对系统进行信息配置和管理,比如Android系统中的设置。下面我们模拟Android中的网络设置,运行效果如下:

 

1、如何创建一个PreferenceActivity?

我们借助Eclipse可以很方便的创建PreferenceActivity,新建一个工程,然后添加一个Android xml文件,这里需要选择的是Preference而不是layout或其他,当我们输入名称后可以在res/xml下找到你新建的xml文件。接着我们可以通过可视化的结构设计或者xml源码设计添加设置项。下面是我们这个例子中的设置项信息:

 

<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >    <PreferenceCategory        android:key="set_net"        android:title="网络设置" >        <CheckBoxPreference            android:key="set_3g"            android:summary="使用3G虽可提高数据载入速度,但可能会降低电池寿命"            android:title="启用3G" />        <CheckBoxPreference            android:key="set_2g"            android:summaryOff="打开蜂窝数据"            android:summaryOn="关闭蜂窝数据"            android:title="蜂窝数据" />        <Preference            android:key="set_2g_net"            android:title="蜂窝数据网络" />        <CheckBoxPreference            android:key="set_roving"            android:summary="在境外时请关闭数据漫游"            android:title="数据漫游" />    </PreferenceCategory>    <PreferenceCategory        android:key="set_VPN_Category"        android:title="VPN设置" >        <Preference            android:key="set_VPN"            android:title="设置VPN" />    </PreferenceCategory></PreferenceScreen>

 

那么如果显示呢?然后我们创建一个Activity继承自PreferenceActivity类即可。代码如下:

package com.liuzhichao.sharedpreferences;import android.os.Bundle;import android.preference.PreferenceActivity;public class SharedPreferencesDemoActivity extends PreferenceActivity  {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 所的的值将会自动保存到SharePreferencesaddPreferencesFromResource(R.xml.netsetting);}}

运行工程,效果即是我们之前的那张效果图。

2、PreferenceActivity元素说明

我们在新建的setting.xml里按Alt+/ 可以看到PreferenceActivity中的元素如下:

 

  • CheckBoxPreference:CheckBox选择项,对应的值的ture或flase
  • EditTextPreference:输入编辑框,值为String类型,会弹出对话框供输入。
  • ListPreference: 列表选择,弹出对话框供选择。
  • Preference:只进行文本显示,需要与其他进行组合使用。
  • PreferenceCategory:用于分组。
  • PreferenceScreen:PreferenceActivity的根元素
  • RingtonePreference:系统玲声选择。
  • PrefeneceActivity都提供了哪几种元素可供使用

 

常见属性说明:

title:显示的标题

key:唯一标识(至少在同一程序中是唯一),SharedPreferences也将通过此Key值进行数据保存,也可以通过key值获取保存的信息

summary:副标题、说明(小字体显示)

defaultValue:默认值(当然,此处只能是true或false了)

android:summaryOn:属性开启的时候的说明

android:summaryOff:属性关闭时候的说明

dialogTitle:弹出对话框的标题

entries:列表中显示的值。为一个数组,通读通过资源文件进行设置。

entryValues:列表中实际保存的值,也entries对应。为一个数组,通读通过资源文件进行设置。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 进屋门正对着厕所门怎么办 楼房对面门上放个镜子我该怎么办 从顺丰发的水果坏了顺丰不管怎么办 汽车塑料件被机头水腐蚀了怎么办 孕期吃了炒菜里面加的香精怎么办 五个月宝宝只长身高不长体重怎么办 孩子6个月奶水越来越少怎么办 孩子快三个月了奶水越来越少怎么办 老婆生完孩子乳房肿胀不下奶怎么办 大人吃了退烧药不出汗怎么办 三岁宝宝抵抗力差总生病怎么办 8个月宝宝发烧39度怎么办 小孩发烧吃了药不退烧怎么办 小孩一直发烧39度左右不退怎么办 九个月宝宝反复发烧39度怎么办 八个月宝宝反复发烧39度怎么办 十个月宝宝反复发烧39度怎么办 2岁宝宝反复发烧怎么办39度左右 宝宝两周岁光吃水果不吃饭怎么办 3岁宝宝光吃水果不吃饭怎么办 中学生就爱玩儿游戏不爱学习怎么办 一岁宝宝只吃水果不吃饭怎么办 孩子发烧咳嗽怎么办最有效的方法 打了百白破孩子一直发烧咳嗽怎么办 顺产侧切肛门坠胀解大便难受怎么办 2岁拉肚子拉水怎么办吃什么药 三岁宝宝三天没拉大便怎么办 3个月宝宝3天没大便怎么办 3个月宝宝4天不拉大便怎么办 17个月宝宝看见生人害怕怎么办 大人给四个月婴儿喂糖水怎么办 宝宝12个月了还一直坐着玩怎么办 七个月宝宝发烧不到38℃怎么办 一个月大的婴儿头立不起来怎么办 18个月的宝宝晚上总找妈妈怎么办 婴儿吃了妈妈生气的奶上火怎么办 3个月的宝宝认人怎么办 十天大的婴儿大便是泡沫该怎么办 婴儿3天没有拉大便了怎么办 儿童两三天拉一次大便是稀便怎么办 五个月的婴儿一星期没大便怎么办