android保存键值对数据
2016-11-01 22:12
330 查看
如果您想要保存相对较小键值集合,您应使用 SharedPreferences。 SharedPreferences 对象指向包含键值对的文件并提供读写这些文件的简单方法。 每个 SharedPreferences 文件由框架进行管理并且可以专用或共享。
本课向您展示如何使用 SharedPreferences API 存储和检索简单的值。
注意:SharedPreferences API 仅用于读写键值对,您不得将其与 Preference API 混淆,后者帮助您为您的应用设置构建用户界面(尽管它们使用 SharedPreferences 作为其实现以保存应用设置)
getSharedPreferences() —
如果您需要按照您用第一个参数指定的名称识别的多个SharedPreferences文件,请使用此方法。 您可以从您的应用中的任何Context 调用此方法。
getPreferences() — 如果您只需使用Activity的一个SharedPreferences,请从 Activity中使用此方法。 因为此方法会检索属于该Activity的默认SharedPreferences文件,您无需提供名称。
例如,以下代码在 Fragment 内执行。它访问通过资源字符串 R.string.preference_file_key 识别的SharedPreferences文件并且使用专用模式打开它,从而仅允许您的应用访问文件。
命名您的SharedPreferences文件时,您应使用对于您的应用而言唯一可识别的名称,比如
或者,如果您只需Activity的一个SharedPreferences文件,您可以使用 getPreferences() 方法:
注意:如果您创建带 MODE_WORLD_READABLE 或 MODE_WORLD_WRITEABLE 的SharedPreferences文件,那么知道文件标识符 的任何其他应用都可以访问您的数据。
传递您想要使用诸如 putInt() 和 putString() 方法写入的键和值。然后调用 commit() 以保存更改。例如:
本课向您展示如何使用 SharedPreferences API 存储和检索简单的值。
注意:SharedPreferences API 仅用于读写键值对,您不得将其与 Preference API 混淆,后者帮助您为您的应用设置构建用户界面(尽管它们使用 SharedPreferences 作为其实现以保存应用设置)
获取SharedPreferences的句柄
您可以通过调用以下两种方法之一创建新的SharedPreferences文件或访问现有的文件:getSharedPreferences() —
如果您需要按照您用第一个参数指定的名称识别的多个SharedPreferences文件,请使用此方法。 您可以从您的应用中的任何Context 调用此方法。
getPreferences() — 如果您只需使用Activity的一个SharedPreferences,请从 Activity中使用此方法。 因为此方法会检索属于该Activity的默认SharedPreferences文件,您无需提供名称。
例如,以下代码在 Fragment 内执行。它访问通过资源字符串 R.string.preference_file_key 识别的SharedPreferences文件并且使用专用模式打开它,从而仅允许您的应用访问文件。
Context context = getActivity(); SharedPreferences sharedPref = context.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE);
命名您的SharedPreferences文件时,您应使用对于您的应用而言唯一可识别的名称,比如
"com.example.myapp.PREFERENCE_FILE_KEY"
或者,如果您只需Activity的一个SharedPreferences文件,您可以使用 getPreferences() 方法:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
注意:如果您创建带 MODE_WORLD_READABLE 或 MODE_WORLD_WRITEABLE 的SharedPreferences文件,那么知道文件标识符 的任何其他应用都可以访问您的数据。
写入SharedPreferences
要写入SharedPreferences文件, 请通过对您的 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();
从SharedPreferences读取信息
要从SharedPreferences文件中检索值,请调用诸如 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);
相关文章推荐
- Android四种保存数据的方法
- Android开发中保存数据的四种方法方法
- Android开发中保存数据的四种方法方法
- Android中保存数据常用的方法
- Android开发之数据保存技术
- Android保存数据的技巧
- Android中File形式保存数据【安卓进化三十】
- Adobe Flash Builder 4.5 Android Air 程序开发系列 之四 打开与关闭应用程序是的保存数据
- Android的关键的持久数据应该在onPause()方法中保存
- [Android开发]Android数据保存之PreferenceActivity
- Android--将数据保存到SDCard中
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- Adobe Flash Builder 4.5 Android Air 程序开发系列 之五 保存数据的几种方式
- Android开发中保存数据的四种方法
- Android开发中保存数据的四种方法方法
- android 将map保存到sqlite数据库中,从表数据中取回map
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- android---数据保存之SQLite(实现登录用户信息保存