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文件:
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <CheckBoxPreference android:key="checkbox" android:title="Checkbox Preference" android:summary="Check it on, check it off" /> <RingtonePreference android:key="ringtone" android:title="Ringtone Preference" android:summary="Pick a tone, any tone" /> </PreferenceScreen>注:CheckboxPreference代表复选框类型Preference,RingtonePreference代表铃声类型Preference。
2.我们需要让使用此Preference的Activity继承自PreferenceActivity
public class PreferenceDemoActivity extends PreferenceActivity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.simple); } }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的强大。接下来,让我们再进一步的走进它。