数据存储之SharedPreference
来源:互联网 发布:域名续费越来越贵 编辑:程序博客网 时间:2024/05/22 19:33
数据存储之SharedPreferences
- 默认存储在/data/data/包名/shared_prefs/文件名
- 基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息等较简单的数据类型
常用的文件的操作模式
MODE_PRIVATE: 默认的操作,表示只有当前应用程序才可以对SharedPreferences文件读写。
MODE_MULTI_PROCESS 一般用于会有多个进程中对同一个SharedPreferences文件进行读写的情况。
实现SharedPreferences存储的步骤
- 获取SharedPreferences对象
- 调用SharedPreferences对象的edit()方法获取SharedPreferences.Editor对象
- 向SharedPreferences.Editor对象中添加数据,使用putXXX()方法
- 调用commit()提交数据,完成数据存储
添加数据的putXXX()类型方法具体有:
putString(String key, @Nullable String value)
putStringSet(String key, @Nullable Set values)
putInt(String key, int value)
putLong(String key, long value)
putFloat(String key, float value)
putBoolean(String key, boolean value)
Editor下的其他方法:
remove(String key) 移除preferences中的某一key值对应的数据
clear() 清除preferences中的所有数据
commit() 提交数据
获取SharedPreferences对象的几种方法
1.Context类中的getSharedPreferences()方法
//Context类中这样定义的,传入参数为(文件名,操作模式)@Overridepublic SharedPreferences getSharedPreferences(String name, int mode) { return mBase.getSharedPreferences(name, mode);}//调用SharedPreferences sp = this.getSharedPreferences("config", MODE_PRIVATE);
2.Activity类中的getPreferences()方法
//Activity类这样定义,只需要传入操作模式,使用这个方法会自动把当前活动的类名作为SharedPreferences的文件名public SharedPreferences getPreferences(int mode) { return getSharedPreferences(getLocalClassName(), mode);}//调用SharedPreferences sp=getPreferences(MODE_PRIVATE);
3.使用PreferenceManager类中的getDefaultSharedPreferences()方法
//PreferenceManager类中这样定义,这是一个静态方法,接收一个Context参数,并自动把当前应用程序的包名作为前缀来命名SharedPreferences文件public static SharedPreferences getDefaultSharedPreferences(Context context) { return context.getSharedPreferences(getDefaultSharedPreferencesName(context), getDefaultSharedPreferencesMode());}//调用SharedPreferences sp=PreferenceManager.getDefaultSharedPreferences(this);
使用adb命令查看SharedPreferences文件
root@android:/data/data/com.example.datastore # cd shared_prefscd shared_prefsroot@android:/data/data/com.example.datastore/shared_prefs # lslsconfig.xmlroot@android:/data/data/com.example.datastore/shared_prefs # cat config.xmlnfig.xml <<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map> <string name="item">SharedPreferences</string></map>
Editor为SharedPreferences文件的编辑器,有以下几种方法:
putString(String key, @Nullable String value)
putStringSet(String key, @Nullable Set values)
putInt(String key, int value)
putLong(String key, long value)
putFloat(String key, float value)
putBoolean(String key, boolean value)
remove(String key)
clear()
在Editor中标记以从首选项中删除所有值。一旦commit被调用,唯一剩余的首选项将是你在这个编辑器中定义的任何一个
commit()
提交Editor编辑的内容
存储数据
使用Editor对象添加值
SharedPreferences sp = this.getSharedPreferences("config", MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit(); editor.putString("item", data); ... editor.commit();
读取数据
使用sp对象来获取值
从首选项中检索所有值
Map<String, ?> getAll();
从首选项中检索字符串值
@NullableString getString(String key, @Nullable String defValue);
从首选项中检索一组String值
@NullableSet<String> getStringSet(String key, @Nullable Set<String> defValues);
从首选项中检索一个int值
int getInt(String key, int defValue);
从偏好中检索一个long值
long getLong(String key, long defValue);
从首选项中检索浮点值
float getFloat(String key, float defValue);
从首选项中检索布尔值
boolean getBoolean(String key, boolean defValue);
代码调用
SharedPreferences sp = this.getSharedPreferences("config", MODE_PRIVATE);sp.getString("item", "data is null")//key值,默认值sp.getXXX...
阅读全文
0 0
- 数据存储之 SharedPreference
- 存储数据之SharedPreference
- 数据存储之SharedPreference
- Android 数据存储之 SharedPreference
- android 数据存储之 SharedPreference
- Android 数据存储之SharedPreference
- Android数据存储之SharedPreference
- Android数据存储之SharedPreference
- Android之SharedPreference轻量级数据存储
- Android之SharedPreference轻量级数据存储
- Android之SharedPreference轻量级数据存储
- Android学习之数据存储---SharedPreference
- Android数据存储方式之SharedPreference
- Android数据存储方式之SharedPreference
- Android之SharedPreference轻量级数据存储
- android笔记20-数据存储之sharedPreference
- Android本地数据存储之Sharedpreference
- Android:数据存储之SharedPreference & 文件
- 翻页功能和查询功能测试用例设计
- tensorflow实现自编码器
- cookie 与 session的区别
- 安装MySQL5.7.18遇到的坑
- socket编程 客户端编程
- 数据存储之SharedPreference
- SQL笔记
- 雪花飘落效果
- dropbear ssh服务移植到arm9开发板
- mysql 年月日时分秒 分组排序
- 工具类的封装-sharePreference的封装
- iOS 高仿<爱鲜蜂>APP
- opencv使用detectMultiScale报错原因
- 设计模式之工厂模式的学习心得