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子目录下面

Android Preference Framework

建立如下结构的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.运行程序看结果:

Android Preference Framework

Android Preference Framework

大家可能注意到在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的强大。接下来,让我们再进一步的走进它。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwgxgg.html