Android数据存储之共享参数SharedPreferences

SharedPreferences是Android的一个轻量级存储工具,采用的存储结构是Key-Value的键值对方式,类似于Java的Properties类,二者都是把Key-Value的键值对保存在配置文件中。不同的是Properties的文件内容是Key=Value这样的形式,而SharedPreferences的存储介质是符合XML规范的配置文件。保存Sharedreferences键值对信息的文件路径是/data/data/应用包名/shared_prefs/文件名.xml。

下面是一个共享参数的XML文件示例:

<?xml version="1.0" encoding="utf-8"?>
<map>
    <string name="name">Mr Lee</string>
    <int name="age" value="20"/>
    <boolean name="married" value="true"/>
    <float name="weight" value="100.0"/>
</map>

基于XML格式的特点,SharedPreferences主要适用于如下场合:
(1)简单且孤立的数据。若是复杂且相互间有关的数据,则要保存在数据库中。
(2)文本形式的数据。若是二进制数据,则要保存在文件中。
(3)需要持久化存储的数据。在App退出后再次启动时,之前保存的数据仍然有效。实际开发中,共享参数经常存储的数据有App的个性化配置信息、用户使用App的行为信息、临时需要保存的片段信息等。

Sharedreferences 对数据的存储和读取操作类似于Map,也有put 函数用于存储数据、get函数用于读取数据。在使用共享参数之前,要先调用getSharedPreferences 函数声明文件名与操作模式,示例代码如下:

        //从share.xml中获取共享参数对象
        SharedPreferences shared = getSharedPreferences("share", MODE_PRIVATE);

getSharedPreferences方法的第一个参数是文件名,上面的 share 表示当前使用的共享参数文件名是share.xml;第二个参数是操作模式,一般都填MODE_PRIVATE,表示私有模式。共享参数存储数据要借助于Editor类,示例代码如下:

        //从share.xml中获取共享参数对象
        SharedPreferences shared = getSharedPreferences("share", MODE_PRIVATE);
        SharedPreferences.Editor editor = shared.edit(); // 获得编辑器的对象
        editor.putString("name", "MrLee"); // 添加一个名叫name的字符串参数
        editor.putInt("age", 30); // 添加一个名叫age的整型参数
        editor.putBoolean("married", true); // 添加-个名叫married 的布尔型参数
        editor.putFloat("weight", 100f); // 添加一个名叫weight的浮点数参数
        editor.commit(); // 提交编辑器中的修改

共享参数读取数据相对简单,直接使用对象即可完成数据读取方法的调用,注意get方法的第二个参数表示默认值,示例代码如下:

        String name = shared.getString("name",""); //从共享参数中获得名叫name的字符串
        int age = shared.getInt("age",0); //从共享参数中获得名叫age的整型数
        boolean mrried = shared.getBoolean("married",false);  //从共享参数中获得名叫maried的布尔数
        float weight= shared.getFloat("weight",0); // 从共享参数中获得名叫weight的浮点数
posted @ 2020-01-18 22:17  赵代码  阅读(911)  评论(1编辑  收藏  举报