现在的位置: 首页 > 综合 > 正文

Android中preference的使用

2013年09月05日 ⁄ 综合 ⁄ 共 1953字 ⁄ 字号 评论关闭

在Android系统中,当我们点击Menu按钮时,则会弹出Menu的菜单选项,其中一项是设置选项,点击了设置选项后,则会弹出系统的设置Activity界面,这些设置功能是如何实现的呢?Android系统本身就大量用到了PreferenceActivity来对系统进行信息配置和管理,那么它是怎么保存数据的呢,如何创建PrefenceActivity的呢,更关键是怎样触发相应事件的呢。

      Android系统有四种基本的数据保存方法,一是SharedPreference,二是文件,三是SQLite,四是ContentProvider。PreferenceActivity是如何保存的数据,其实就是通过SharedPreference键值对的形式来保存数据的。

      下面我们以一个例子来说明如何在Android系统中制作一个设置的功能。先看下该例子的大概框架图:

在src中有两个Activity,其中PreferenceDemo.java是显示Menu页面,MyPreference.java是设置页面;在res/xml目录下有个mypreference.xml的文件,该文件是设置页面的布局文件,在添加该xml文件的时候,注意是选择的不是Layout,而是Preference,而且注意Folder路径是 res/xml。

 

下面是各个文件的源代码:

1. mypreference.xml 的源码如下:

[c-sharp] view
plain
copy

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <PreferenceScreen  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4. <PreferenceCategory android:title="我的位置" android:key="set_local">  
  5.   <CheckBoxPreference   
  6.      android:key="apply_wifi"   
  7.      android:title="使用无线网络"   
  8.      android:summary="使用无线网络在应用程序(例如Google地图)中查看位置"  
  9.      android:defaultValue="true" >  
  10.   </CheckBoxPreference>  
  11.   <CheckBoxPreference   
  12.      android:key="apply_gps"   
  13.      android:title="使用GPS"   
  14.      android:summary="定位到街道级别(需要消耗更多的电量以及天气允许)">  
  15.   </CheckBoxPreference>  
  16. </PreferenceCategory>  
  17.   
  18. <PreferenceCategory android:title="无线和网络设置">  
  19.   <CheckBoxPreference   
  20.      android:key="apply_fly"   
  21.      android:title="飞行模式"   
  22.      android:summary="禁用所有无线连接">  
  23.   </CheckBoxPreference>  
  24.   <CheckBoxPreference   
  25.      android:key="apply_internet"  
  26.      android:title="Internet共享"    
  27.      android:summary="禁用通过USB共享Internet连接">  
  28.   </CheckBoxPreference>  
  29.   <CheckBoxPreference   
  30.      android:key="apply_wifi"  
  31.      android:title="Wi-Fi"    
  32.      android:summary="打开Wi-Fi">  
  33.   </CheckBoxPreference>  
  34.   <Preference   
  35.      android:key="wifi_setting"  
  36.      android:title="Wi-Fi设置"    
  37.      android:summary="设置和管理无线接入点"   
  38.      android:dependency="apply_wifi">  
  39.   </Preference>  
  40.   <CheckBoxPreference  
  41.      android:key="apply_bluetooth"   
  42.      android:title="蓝牙"    

抱歉!评论已关闭.