Android Basic: sharedPreferences的用法

一、简介 

SharedPreferences是以键值对来存储应用程序的配置信息的一种方式,它只能存储基本数据类型。一个程序的配置文件仅可以在本应用程序中使用,或者说只能在同一个包内使用,不能在不同的包之间使用。 实际上SharedPreferences是采用了XML格式将数据存储到设备中,以XML文件的形式保存在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。

以下表格为获取SharedPreferences对象的两个方法:

 

返回值

函数

备注

SharedPreferences

Context.getSharedPreferences(String name,int mode)

name为本组件的配置文件名(如果想要与本应用程序的其他组件共享此配置文件,可以用这个名字来检索到这个配置文件)。

mode为操作模式,默认的模式为0或MODE_PRIVATE,还可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。

SharedPreferences

Activity.getPreferences(int mode)

配置文件仅可以被调用的Activity使用。

mode为操作模式,默认的模式为0或MODE_PRIVATE,还可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。

 

如果要读取配置文件信息,只需要直接使用SharedPreferences对象的getXXX()方法即可,而如果要写入配置信息,则必须先调用SharedPreferences对象的edit()方法,使其处于可编辑状态,然后再调用putXXX()方法写入配置信息,最后调用commit()方法提交更改后的配置文件。

 

二、使用SharedPreferences保存key-value对的步骤如下:

  (1)使用Activity类的getSharedPreferences方法获得SharedPreferences对象,其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定。

  (2)使用SharedPreferences接口的edit获得SharedPreferences.Editor对象。

  (3)通过SharedPreferences.Editor接口的putXxx方法保存key-value对。其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法。

  (4)通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。

 

具体代码的书写流程为:

 

A、存放数据信息

1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences

SharedPreferences settings = getSharedPreferences(“setting”, 0);

2、让setting处于编辑状态

SharedPreferences.Editor editor = settings.edit();

3、存放数据

editor.putString(“name”,”ATAAW”);
editor.putString(“URL”,”ATAAW.COM”);

4、完成提交

editor.commit();

B、读取数据信息

1、获取Preferences

SharedPreferences settings = getSharedPreferences(“setting”, 0);

2、取出数据

String name = settings.getString(“name”,”默认值”);
String url = setting.getString(“URL”,”default”);

以上就是Android中SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看:

DDMS->File Explorer /<package name>/shared_prefs/setting.xml

 

三、主要代码 具体如下(仅供参考):

在onCreate方法中调用restorePrefs()方法:

 

//读取     功能的实现
    private void restorePrefs() {
  // TODO Auto-generated method stub
     //SharedPreferences是一种轻量级的数据存储方式.是以键值对来存储应用程序的
       //配置信息的一种方式,它只能存储基本数据类型。
     //声明一个优先级设置 类型 settings,载入配置文件


  SharedPreferences settings = getPreferences(BMI.MODE_PRIVATE);

  //使用getXXX函数从优先级设置读取不同类型的内容 得到优先级设置参数的内容


  String pref_height = settings.getString(PREF_HEIGHT, "");

  //此一句为唤醒记忆语句


   field_height.setText(pref_height);
   field_weight.requestFocus();//设置焦点字段 到“体重”字段上 用户只需直接输入体重数字就可以了

 }
   
    //存储    在Activity每次变暗,也就是离开当前屏幕时,记住设置的身高值     即 存储优先级设置
    protected void onPause()
    {
     super.onPause();
     Log.v("BMI", "onPause1");
     //获得SharedPreferences对象


     SharedPreferences settings = getPreferences(BMI.MODE_PRIVATE);


     //获得SharedPreferences.Editor


     SharedPreferences.Editor editor = settings.edit();


     //保存组件的值   为优先级设置填写不同类型的内容
     //用"field_height"界面组件标识符来取得身高的字符串 然后保存到PREF_HEIGHT所代表的优先级设置参数中


     editor.putString(PREF_HEIGHT, field_height.getText().toString());


     //提交保存的结果   将改变写到系统中


     editor.commit();
    }

posted @ 2013-04-12 11:26  colin_chan  阅读(265)  评论(2编辑  收藏  举报