zoukankan      html  css  js  c++  java
  • 数据存储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方法接收两个参数,第一个是键,第二个参数是默认值,即当传入的键找不到对应的值时,会以什么样的默认值进行返回

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

  • 相关阅读:
    Openstack API 开发 快速入门
    virtualBox虚拟机到vmware虚拟机转换
    使用Blogilo 发布博客到cnblogs
    Openstack Troubleshooting
    hdoj 1051 Wooden Sticks(上升子序列个数问题)
    sdut 2430 pillars (dp)
    hdoj 1058 Humble Numbers(dp)
    uva 10815 Andy's First Dictionary(快排、字符串)
    sdut 2317 Homogeneous squares
    hdoj 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+二分)
  • 原文地址:https://www.cnblogs.com/chhom/p/4755441.html
Copyright © 2011-2022 走看看