您的位置:华清远见教育科技集团 >> Android资料 >> Android开发之SharedPreferences数据存储方式  
 
Android开发之SharedPreferences数据存储方式
分享到:

SharedPreferences是Android平台上的一种轻量级的数据保存方式,主要用来存储一些简单的配置信息,例如一些默认欢迎语、登录的用户名和密码等。通过SharedPreferences可以将NVP(Name-Value Pair,名称-值对)保存在Android的文件系统中,而且SharedPreferences对文件系统的操作过程完全屏蔽,这使得开发人员仅需通过调用SharedPreferences对NVP很方便地进行保存和读取。SharedPreferences不仅能够保存数据,还能够实现不同应用程序间的数据共享。

SharedPreferences支持3种访问模式。

□  私有(MODE_PRIVATE):只有创建程序有读取或写入SharedPreferences的权限。

□  全局读(MODE_WORLD_READABLE):不仅创建程序有读取或写入SharedPreferences的权限,其他应用程序也有读取操作的权限,但没有写入操作的权限。

□  全局写(MODE_WORLD_WRITEABLE):创建程序和其他程序都可以对其进行写入操作,但没有读取的权限。

在使用SharedPreferences之前,需先定义SharedPreferences的访问模式。代码清单7-1所示的代码将访问模式定义为私有模式。

代码清单7-1 定义SharedPreferences私有访问模式


public static int MODE = MODE_PRIVATE;

有的时候需要将SharedPreferences的访问模式设定为全局读/写模式,这时就需要其既可以全局读MODE_WORLD_READABLE,又可以全局写MODE_WORLD_WRITEABLE,这样就需要写成代码清单7-2所示的代码方式:

代码清单7-2 定义SharedPreferences全局读/写模式


public static int MODE = Context.MODE_WORLD_READABLE +
                    Context.MODE_WORLD_WRITEABLE;

在定义完SharedPreferences的访问模式之后,需定义SharedPreferences的名称(如代码清单7-3所示),这个名称与在Android文件系统中保存的文件同名。由此可知,若NVP内容具有相同的SharedPreferences名称,它们那么都会保存在同一个文件中。

代码清单7-3 定义SharedPreferences的名称


public static final String PREFERENCE_NAME = "SETTING_Infos";

为了可以使用SharedPreferences,需要将访问模式和SharedPreferences名称作为参数,传递到getSharedPreferences()方法中,方法返回一个SharedPreferences对象,代码如代码清单7-4所示。

代码清单7-4 getSharedPreferences()方法,获取SharedPreferences对象


SharedPreferences sharedPreferences = getSharedPreferences
                        (PREFERENCE_NAME, MODE);

在获取到SharedPreferences对象后,则可以通过SharedPreferences.Editor类对SharedPreferences进行修改(如代码清单7-5所示),后调用commit()方法保存修改内容。

其中,SharedPreferences广泛支持包括整型、布尔型、浮点型和长型等在内的各种基本数据类型。

代码清单7-5 SharedPreferences.Editor对SharedPreferences修改


SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString("NAME", "Tom");
    editor. putFloat "HEIGHT",1.81f);
    editor.commit();

以上讲述了如何修改SharedPreferences的数据,那么如何读取其中的数据呢?对于一个已经保存了的SharedPreferences,若是从其中读取数据,则首先调用getSharedPreferences()方法,并在方法的第1个参数中指明需要访问的SharedPreferences名称,获取到SharedPreferences对象之后,先通过get()方法获取保存在SharedPreferences中的NVP,get<Type
>()方法的第1个参数是NVP的名称,第2个参数是在无法获取到数值的时候使用的默认值。代码如代码清单7-6所示。

代码清单7-6 SharedPreferences.Editor对SharedPreferences修改


SharedPreferences sharedPreferences = getSharedPreferences
                        (PREFERENCE_NAME, MODE);
    String name = sharedPreferences.getString(“NAME”,””);
    String height = sharedPreferences. getString (“HEIGHT”, “”);

 更多相关文章

·Android开发之SharedPreferences示例
·Android开发之Intent解析
·Android开发之使用Intent隐式启动Activity
·Android开发中Intent属性详解
·Android开发之Android的原生库