Android Preference Framework


Android Framework提供了多种方式对数据进行操作,程序员可以使用文件,数据库等方式对数据进行操作。其中最简单的一种方式是使用Android Preferences Framework. Android Preferences Framework提供了友好的界面对用户的个性选择进行数据操作。使用Android手机的用户应该对一些关于手机的设置操作应该都比较熟悉,其实此应用程序是使用Android Preferences Framework的典型代表。Android Preferences Framework用到的最核心的对象是SharedPreferences对象。 在后面的代码当中我们会介绍如何使用此核心对象。

一、使用Android Preferences Framework构建类似Settings App的步骤

1.首先需要建立描述Preferences的XML文件,主要此类型文件要放在res/xml子目录下面

建立如下结构的XML文件:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <PreferenceScreen  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.   
  5.     <CheckBoxPreference   
  6.         android:key="checkbox"  
  7.         android:title="Checkbox Preference"   
  8.         android:summary="Check it on, check it off" />  
  9.   
  10.     <RingtonePreference  
  11.          android:key="ringtone"   
  12.          android:title="Ringtone Preference"   
  13.          android:summary="Pick a tone, any tone" />  
  14.   
  15. </PreferenceScreen>  

注:CheckboxPreference代表复选框类型Preference,RingtonePreference代表铃声类型Preference。

2.我们需要让使用此Preference的Activity继承自PreferenceActivity

  1. public class PreferenceDemoActivity extends PreferenceActivity{  
  2.     @Override  
  3.     public void onCreate(Bundle savedInstanceState) {  
  4.         super.onCreate(savedInstanceState);  
  5.         addPreferencesFromResource(R.xml.simple);  
  6.     }  
  7. }  

3.运行程序看结果:

大家可能注意到在XML文件当中,XML文件的根元素是PreferenceScreen。CheckboxPreference节点和RingtonePreference字节都是PreferenceScreen的子节点。PreferenceScreen跟Activity的作用有点类似,相当于一块屏幕,如果想让用户不在同一个屏幕当中作出选择,那么可以嵌套PreferenceScreen节点。这一点我们在后面将会讲述。大家还会注意到CheckboxPreference和RingtonePreference节点都有一个属性android:key,这个属性非常关键,用来进行Preferences存储的时候的key值。我们的这个应用的包名为:com.freedie.preferencedemo,所以生成的保存Preference的文件名称为:com.freedie.preferencedemo_preferences.xml。大家可以尝试看下,然后打开对应的XML文件,可以清楚的看到键值对的对应情况。在这里提醒大家一下,我们完成了对用户定制数据的保存,但是我们没有编写任何显示对数据进行存储的JAVA代码。除了那一句加载Preference XML文件之外。数据操作的事情全部由Android为我们做好了。到此,您也许感受到了Android Preferences Framework的强大。接下来,让我们再进一步的走进它。

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容