android SharedPreferences 读写 及 工具类介绍
来源:互联网 发布:linux 查看自启动服务 编辑:程序博客网 时间:2024/06/02 06:52
保存到Preference
当有一个相对较小的key-value集合需要保存时,可以使用SharedPreferences APIs。
SharedPreferences 对象指向一个保存key-value pairs的文件,并为读写他们提供了简单的方法。
每个 SharedPreferences 文件均由framework管理,其既可以是私有的,也可以是共享的。
获取SharedPreference
我们可以通过以下两种方法之一创建或者访问shared preference 文件:
- getSharedPreferences() — 如果需要多个通过名称参数来区分的shared preference文件, 名称可以通过第一个参数来指定。可在app中通过任何一个Context 执行该方法。
getPreferences() — 当activity仅需要一个shared preference文件时。因为该方法会检索activity下默认的shared preference文件,并不需要提供文件名称。
getPreferences()使用当前activity的getLocalClassName()作为默认名称,即activity的名称。(例如MainActivity)
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
四种MODE
在 Android系统提供的API中, 获取 Preferences对象有四种类型,分别如下:
文件创建模式:Activity.MODE_APPEND
如果该文件已经存在,然后将数据写入,而不是抹掉它现有文件的末尾。
文件创建模式:MODE_PRIVATE
默认模式,在那里创建的文件只能由应用程序调用,即为私有的
文件创建模式:Activity.MODE_WORLD_READABLE
允许所有其他应用程序有读取和创建文件的权限。
文件创建模式:Activity.MODE_WORLD_WRITEABLE
允许所有其他应用程序具有写入、访问和创建的文件权限。
写Shared Preference
为了写shared preferences文件,需要通过执行edit()创建一个 SharedPreferences.Editor。
通过类似putInt()与putString()等方法传递keys与values,接着通过commit() 提交改变.
SharedPreferences.Editor editor = sharedPref.edit();int newHighScore = 59;editor.putInt(key, newHighScore);editor.apply(); // as会提示, commit() 更换为 apply()
读Shared Preference
为了从shared preference中读取数据,可以通过类似于 getInt() 及 getString()等方法来读取。在那些方法里面传递我们想要获取的value对应的key,并提供一个默认的value作为查找的key不存在时函数的返回值。如下:
long highScore = sharedPref.getInt(key, 0);Log.d(TAG, "onCreate: " + b + " " + highScore);
工具类介绍
tray
1424星
https://github.com/grandcentrix/tray
// 创建一个 preference 访问. 这是全局的 preferences.final AppPreferences appPreferences = new AppPreferences(getContext());// 保存一个key valueappPreferences.put("key", "lorem ipsum");// 根据key 读取value. key不存在使用第二个参数final String value = appPreferences.getString("key", "default");Log.v(TAG, "value: " + value);// 读取key 不存在的. 返回默认值final String defaultValue = appPreferences.getString("key2", "default");Log.v(TAG, "value: " + defaultValue); // value: default
gradle
dependencies { compile 'net.grandcentrix.tray:tray:0.12.0'}
EasySP
63星
https://github.com/WhiteDG/EasySP
- 保存数据到sharedpreferences
EasySP.init(context).putBoolean("boolean", true);//可以使用字符串资源作为保存的键EasySP.init(context).putBoolean(R.string.key_bool, true);//可以自定义sharedpreferences的文件名EasySP.init(context,"Custom").putBoolean("boolean", true);
- 一句代码保存多条数据(链式调用)
EasySP.init(context) .putBoolean(R.string.key_bool, true) .putInt(R.string.key_int, 1) .putString(R.string.key_string, "string") .putLong(R.string.key_long, 1000000000) .putFloat(R.string.key_float, 1.1f) .put("put", 100) .putStringSet(R.string.key_set, strings);
- 读取数据
boolean booleanData = EasySP.init(context).getBoolean("bool");boolean booleanData = EasySP.init(context).getBoolean(R.string.key_bool,defValue);
- 移除某个键对应的数据
EasySP.init(context).remove("bool");EasySP.init(context).remove(R.string.key_bool);
- 清除所有数据
EasySP.init(context).clear();
gradle
dependencies { compile 'com.white:easysp:1.0.0'}
参考文章
http://hukai.me/android-training-course-in-chinese/basics/data-storage/shared-preference.html
http://www.cnblogs.com/TerryBlog/archive/2010/06/18/1760598.html
https://github.com/grandcentrix/tray
https://github.com/WhiteDG/EasySP/blob/master/README_ZH.md
- android SharedPreferences 读写 及 工具类介绍
- android SharedPreferences工具类
- android SharedPreferences工具类
- Android SharedPreferences工具类
- Android之SharedPreferences工具类
- Android封装SharedPreferences工具类
- Android:SharedPreferences操作工具类
- Android之SharedPreferences工具类
- Android SharedPreferences的工具类
- android 之SharedPreferences工具类
- android中 SharedPreferences工具类
- Android SharedPreferences的工具类
- Android-SharedPreferences读写-简单
- CSV文件介绍 及 文件读写工具类
- Android工具类之SharedPreferences统一管理类
- Android工具类--SharedPreferences储存类
- Android之SharedPreferences两个工具类
- 【工具类】Android数据存储sharedpreferences加密
- mysql执行外部sql文件的命令
- MapReduce Job本地提交过程源码跟踪及分析
- 126 C语言格式化读写文件
- connect研究
- springboot解决跨域问题
- android SharedPreferences 读写 及 工具类介绍
- Redis与jedis
- Warning: The VM will try to fix the stack guard now.It's highly recommended that you fix the library
- UVA 12506 Shortest Names
- 127 C语言文件的随机读写
- 排序算法之快速排序的理解与实现
- POJ1149:PIGS(最大流)
- linux内核升级
- C# 值传递和引用传递