SharedPreferences 保存键值集
2016-06-16 11:36
239 查看
原文地址:https://developer.android.com/training/basics/data-storage/shared-preferences.html
如果您有想要保存的相对较小键值集合,您应使用
每个
本课向您展示如何使用
注意:
仅用于读写键值对,您不得将其与
有关使用
如果您需要按照您用第一个参数指定的名称识别的多个共享首选项文件,请使用此方法。 您可以从您的应用中的任何
因为此方法会检索属于该Activity的默认共享首选项文件,您无需提供名称。
例如,以下代码在
命名您的共享首选项文件时,您应使用对于您的应用而言唯一可识别的名称,比如
或者,如果您只需Activity的一个共享首选项文件,您可以使用
注意:如果您创建带
的任何其他应用都可以访问您的数据。
传递您想要使用诸如
例如:
如果您有想要保存的相对较小键值集合,您应使用
SharedPreferencesAPI。
SharedPreferences对象指向包含键值对的文件并提供读写这些文件的简单方法。
每个
SharedPreferences文件由框架进行管理并且可以专用或共享。
本课向您展示如何使用
SharedPreferencesAPI 存储和检索简单的值。
注意:
SharedPreferencesAPI
仅用于读写键值对,您不得将其与
PreferenceAPI 混淆,后者帮助您为您的应用设置构建用户界面(尽管它们使用
SharedPreferences作为其实现以保存应用设置)。
有关使用
PreferenceAPI 的信息,请参阅设置指南。
获取共享首选项的句柄
您可以通过调用以下两种方法之一创建新的共享首选项文件或访问现有的文件:getSharedPreferences()—
如果您需要按照您用第一个参数指定的名称识别的多个共享首选项文件,请使用此方法。 您可以从您的应用中的任何
Context调用此方法。
getPreferences()— 如果您只需使用Activity的一个共享首选项,请从
Activity中使用此方法。
因为此方法会检索属于该Activity的默认共享首选项文件,您无需提供名称。
例如,以下代码在
Fragment内执行。它访问通过资源字符串
R.string.preference_file_key识别的共享首选项文件并且使用专用模式打开它,从而仅允许您的应用访问文件。
Context context = getActivity(); SharedPreferences sharedPref = context.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE);
命名您的共享首选项文件时,您应使用对于您的应用而言唯一可识别的名称,比如
"com.example.myapp.PREFERENCE_FILE_KEY"
或者,如果您只需Activity的一个共享首选项文件,您可以使用
getPreferences()方法:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
注意:如果您创建带
MODE_WORLD_READABLE或
MODE_WORLD_WRITEABLE的共享首选项文件,那么知道文件标识符
的任何其他应用都可以访问您的数据。
写入共享首选项
要写入共享首选项文件, 请通过对您的SharedPreferences调用
edit()来创建一个
SharedPreferences.Editor。
传递您想要使用诸如
putInt()和
putString()方法写入的键和值。然后调用
commit()以保存更改。例如:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score), newHighScore); editor.commit();
从共享首选项读取信息
要从共享首选项文件中检索值,请调用诸如getInt()和
getString()等方法,为您想要的值提供键,并根据需要提供要在键不存在的情况下返回的默认值。
例如:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.string.saved_high_score_default); long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
相关文章推荐
- Google Protocol Buffer 的使用和原理
- 模块调用,datetime,time,logging,递归,双层装饰器, json,pickle迭代器和生成器
- 重写bootstrap css
- ExtJS:Ajax基础
- CSS3过渡和动画
- DataType vs ContentType in jquery ajax [duplicate] 数据类型
- video.js在IE8下无法正常播放
- JS事件委托
- 点击按钮后 屏幕会自动滚至顶部
- javascript设计模式学习之二——this
- JS中sort函数排序用法实例分析
- AngularJS的ng-click阻止冒泡
- 关于JS的this的情况分析和总结
- 【自学笔记】js JavaScript callback()执行线性动画
- css3颜色
- JavaScript中判断对象类型的种种方法
- 全国省市的二级联动js方法
- 剑指offer(31)-第一个只出现一次的字符位置
- 跨平台开发之React Native初体验
- 【bootstrap】Bootstrap Validate表单验证神器