• 数据存储SharePreferences详解


    1.SharedPreferences存储

    SharedPreferences时使用键值对的方式来存储数据的,也就是在保存一条数据时,需要给这条数据提供一个对应的键,这样在读取的时候就可以通过这个键把相应的值取出来

    SharePreferences是一个接口,不能直接使用,但可以通过以下两种方法获得:

    1.1.1Context类的getSharePreferences(String name ,ine mode)方法来获得一个SharePreferences对象:

    此方法接收两个参数,第一个参数用于指定SharedPreference文件的名称,即存储XML文件的名称,如果存在,则会直接引用,如果指定的文件不存在则会创建一个,SharedPreference文件都是存放在/data/data/<包名>/shared_prefs/存储的XML文件目录下,第二个参数表示文件的存储模式(该方式创建的XML文件可以被同一个软件的Activity引用)。

    文件的几种存储模式:

    MODE_PRIVATE:表示私有文佳,该文件智能被创建他的文件所访问
    
    MODE_APPEND:表示新的存储内容会添加在原有文件内容的后面。
    
    MODE_WORLD_READABLE:表示该文件能被所有的文件读取,但是不可以写入。
    
    MODE_WORLD_WEITABLE:表示该文件能被所有的文件写入,也可以读取
    
    MODE_MULTI_PROCESS:表示改文件可以被多个进程同时访问,适用于Android2.3及之后的版本。

    1.1.2:调用Activity对象的getPreferences(int mode)方法

    该方法有一个参数,表示文件的存储模式,具体模式童第轶中相同,这种方法获得的对象只能被该方法所在的Activity所调用

    1.2还要创建一个SharePreferences.Editor类的对象,该类负责具体的写入操作,创建方法使通过SharePreferences类的edit()方法来创建。

    通常有以下几种方法:

    putBoolean(String key,boolean value)
    
    putString(String key,String value)
    
    putInt(String key,int value)
    
    putFloat(String key,float value)
    
    putLong(String key,long value)
    
    commit();//在执行完各种写入、删除、修改的操作后,通过此方法来正式提交数据,确认存储文件的数据变化
    
    clear();//清除键值对的方法
    
    remove(String key);//删除官集资所对应的值
    
    getAll();//读取存储文件中的所有数据,返回一个Map类型的值,来存放所有的键值对
    
    getBoolean(String key,boolean defValue)
    
    getString(String key,String defValue)
    getInt(String key,String defValue)
    getFloat(String key,String defValue)
    getLong(String key,String defValue)
    
    contains(String key)
    
    registerSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener);//注册监听器,来监听SharePreferences的更改事件,在onCreate()方法中设置
    
    unregisterSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener);//注销监听器,不再监听SharePreferences的更改事件。

    存储数据

    得到SharedPreference对象之后,就可以开始向SharedPreference文件中存储数据了,主要有三步:

    a.使用SharedPreference对象的edit()方法来获取一个SharedPreference.Editor对象

    b.向SharedPreference.Editor对象中添加数据,比如添加一个布尔型数据就是用putBoolean方法,添加一个字符串就是用putString()方法,以此类推

    c.调用commit()方法将添加的数据提交,从而完成数据存储操作

    如:

    private SharePreferences sp;
    
    //创建一个SharePreferences接口的实例对象,将生成一个XML名称为demo_01,模式为MODE_PRIVATE
    
    sp=this.getSharedPreferences("demo_01",MODE_PRIVATE);
    
    //通过edit()方法创建一个SharePreferences.Editor类的实例对象
    SharePreferences.Editor editor =sp.edit();
    //通过putString()方法,将数据存入文件中
    editor.putString("name","sssss");
    
    //用commit()方法予以正式提交
    
    editor.commit();

     打开文件,可看到如下代码:

    <map>
    
    <string name="name">sssss</string>
    
    </map>

    删除数据:

    editor.clear();//清除数据

    查询数据:

    String name = getString("name","lisi");

    1.3从SharedPreferences中读取数据

    SharedPreferences对象中提供了一系列的get方法用于读取数据,每种get对应了一种put方法

    get方法接收两个参数,第一个是键,第二个参数是默认值,即当传入的键找不到对应的值时,会以什么样的默认值进行返回

    可以实现设置密码,记住密码功能。

  • 相关阅读:
    数据库自动重连
    golang slice分割和append copy还是引用
    Unicode和UTF-8的关系
    golang的内置类型map的一些事
    svn sync主从同步学习
    CMake学习笔记
    常用排序总结
    优先队列实现Huffman编码
    linux 下C++查询mysql数据库
    ubuntu下C++连接mysql数据库
  • 原文地址:https://www.cnblogs.com/chhom/p/4755441.html
Copyright © 2020-2023  润新知