zoukankan      html  css  js  c++  java
  • Android SharedPreference 数据存储

    参考:http://www.cnblogs.com/friends-wf/p/4835818.html

    应用开发过程中,数据存储几乎是肯定会遇到的问题,根据要存储的数据类型和数量,可以选择合适的存储方式。

    Android提供了4种存储方式,目前为止我只用过Sqlite数据库和SharedPreference,这里对SharedPreference

    存储方式进行总结,以便以后使用。

    SharedPreferences主要用于存放软件的配置参数等信息,是存取和修改软件配置参数数据的接口,由getSharedPreferences(String, int)函数返回。任何具体的参数,都有一个单独的该类实例向所有客户端共享。修改参数必须通过SharedPreferences.Editor 对象,以确保这些参数在被提交到外存的时候它们的值处于一致的状态和控制之下。该类暂不支持多进程操作,但是以后将提供该功能。

    getSharedPreferences(name,mode);
    第一个参数name是程序存储数据信息所生成的xml文件的名字,自定义,此为LightTest.xml,可在此程序的/shared_prefs文件夹下找到
    第二个参数mode则是文件的打开方式,默认的模式为0或MODE_PRIVATE,表示该文件的使用范围
      MODE_PRIVATE,则该配置文件只能被自己的应用程序访问
      MODE_WORLD_READABLE,则该配置文件除了自己访问外还可以被其它应该程序读取
      MODE_WORLD_WRITEABLE,则该配置文件除了自己访问外还可以被其它应该程序读取和写入

    代码:

    // Data Storage
        /**
         * 存储:
         * 1.获得SharedPreferences 的实例对象,通过getSharedPreferences()传递文件名和模式;
         * 2.获得Editor的实例对象,通过SharedPreferences的实例对象的edit()方法;
         * 3.存入数据,利用Editor 对象的putXXX()方法;
         * 4.提交修改的数据,利用Editor 对象的apply()方法。
         */
        private void setSharedPreferenceData(String Name, String dataStr) {
            //获取SharedPreferences
            SharedPreferences sharedPref = getSharedPreferences("LightTest", MODE_PRIVATE);
            //打开SharedPreferences的编辑状态
            SharedPreferences.Editor editor = sharedPref.edit();
            //存储数据,用户名,键值对的形式
            editor.putString(Name, dataStr);
            //提交,保存数据
            editor.apply();
        }
    
        // Data Reader
        /**
         * 读取:
         * 1.获得SharedPreferences 的实例对象,通过getSharedPreferences()传递文件名和模式;
         * 2.读取数据,通过SharedPreferences 的实例对象的getXXX()方法。
         */
        private String getSharedPreferenceData(String Name) {
            //获取SharedPreferences
            SharedPreferences sharedPref = getSharedPreferences("LightTest", Context.MODE_PRIVATE);
            //获取LightTest文件中Name对应的数据;
            // 注意第二个参数,若此键值对中暂时没有数值,则默认返回第二个参数的值
            return sharedPref.getString(Name, null);
        }
  • 相关阅读:
    区间dp_学习笔记
    状态压缩dp_学习笔记
    第十一届蓝桥杯C/C++ J题网络分析(带权并查集水题)
    状态机dp学习笔记_AcWing
    洛谷P4052 [JSOI2007]文本生成器(AC自动机+DP)
    洛谷P5840 [COCI2015]Divljak (AC自动机+fail树上dfs序+树上差分线段树维护)
    洛谷P3401 [USACO12JAN]Video Game G(AC自动机+记忆化搜索)
    HDU3613 Best Reward (exKMP/manacher)
    洛谷P2375 [NOI2014]动物园(KMP+倍增优化)
    ICPC2017南宁站题解(A,E,F,H,I,J,L,M)
  • 原文地址:https://www.cnblogs.com/fansen/p/5238779.html
Copyright © 2011-2022 走看看