Android开发 - 存储辅助类 SharedPreferences 解析

SharedPreferences简介

  • SharedPreferencesAndroid平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置SharedPreferences的数据以键值对(key, val)的进行保存在以xml形式的文件中。在应用中通常做一些简单数据的持久化缓存

  • editorput方法可以看出SharedPreferences提供了Stringsetintlongfloatboolean六种数据类型editor类核心方法

  • getSharedPreferences(String name, int mode)

    • 参数解析
      • name:存储文件名字
      • mode存储方式;取值如下:
        • Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写
        • Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写
        • Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序写,但不能读
        • Context.MODE_APPEND:该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件

SharedPreferences使用

增加数据

  • 代码实例

    //通过对应存储文件名得到要操作的SharedPreferences对象
    SharedPreferences sharedPreferences = getSharedPreferences("user",MODE_PRIVATE);
    //获取Editor对象的引用
    SharedPreferences.Editor editor = sharedPreferences.edit();
    //将值以键值对(key, val)格式放入文件
    editor.putString("name", "lucas");
    editor.putInt("age", 30);
    editor.putBoolean("islogin",true);
    // 提交数据
    editor.commit();
    
  • 点击添加按钮以后我们可以看到在data/data/应用程序包名/shared_prefs文件夹下生成了一个user.xmlxml文件。点击可以打开该文件,可以看到该文件保存了如下的数据

    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <map>
        <string name="name">lucas</string>
        <int name="age" value="30" />
        <boolean name="islogin" value="true" />
    </map>
    
  • 效果展示

读取数据

  • 读取数据可以通过获取SharedPreferences对象,通过SharedPreferences 对象可以获取存储的数据值,第二个参数一般是个默认值,表示当获取数据的时候没有该key则返回一个默认值

    SharedPreferences sharedPreferences = getSharedPreferences("user", MODE_PRIVATE);
    String name = sharedPreferences.getString("name","");
    int age = sharedPreferences.getInt("age",0);
    boolean islogin = sharedPreferences.getBoolean("islogin",true);
    Log.i("lucashu","name:"+ name +" age:" + age +" islogin:" + islogin);
    

删除数据

  • 删除数据增加数据有点类似 也是通过Editor对象来完成

    //通过对应存储文件名得到要操作的SharedPreferences对象
    SharedPreferences sharedPreferences = getSharedPreferences("user",MODE_PRIVATE);
    //获取Editor对象的引用
    SharedPreferences.Editor editor = sharedPreferences.edit();
    //删除key对应的值
    editor.remove("name");
    // 提交数据
    editor.commit();
    

修改数据

  • 修改数据增加数据类似,覆盖原来的数据即修改数据

    //通过对应存储文件名得到要操作的SharedPreferences对象
    SharedPreferences sharedPreferences = getSharedPreferences("user",MODE_PRIVATE);
    //获取Editor对象的引用
    SharedPreferences.Editor editor = sharedPreferences.edit();
    //将新的值放入要修改数据对应的key进行覆盖
    editor.putString("name", "lucas1");
    editor.putInt("age", 31);
    editor.putBoolean("islogin",false);
    // 提交数据
    editor.commit();
    

清除数据

  • 可以通过Editor对象的clear方法来完成清除数据

    //通过对应存储文件名得到要操作的SharedPreferences对象
    SharedPreferences sharedPreferences = getSharedPreferences("user", MODE_PRIVATE);
    //获取Editor对象的引用
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.clear();
    // 提交数据
    editor.commit();
    
  • 清除以后user.xml文件并不会删除,但里面的数据都没了

posted @ 2024-07-26 16:26  阿俊学JAVA  阅读(2)  评论(0编辑  收藏  举报