• 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的浮点数
  • 相关阅读:
    Java并发基础知识点总结
    Java中的可重入锁(2)
    Java中的可重入锁
    多线程的共享变量的内存不可见性
    JavaWeb 案例3— Cookie案例
    JavaWeb 案例2—response案例
    JavaWeb 之 三层架构(MVC架构):软件设计架构
    JavaWeb 之 备用9
    JavaWeb 之 备用6
    JavaWeb 之 备用7
  • 原文地址:https://www.cnblogs.com/zdm-code/p/12210470.html
Copyright © 2020-2023  润新知