android PreferenceActivity

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

android PreferenceActivity - 爱海涛涛 - Google Android

 
以此为例我们来介绍一下如何实现这个界面。首先建立一个xml来描述这个界面,文件为res/xml/preferences.xml

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

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

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

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

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

 

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

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

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

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

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

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


转载于:http://blog.163.com/dangzhengtao@yeah/blog/static/778008742010111363132727/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值