跳转到相应内容

最常访问

最近访问

navigation

保存键值集

如果您有想要保存的相对较小键值集合,您应使用 SharedPreferences API。SharedPreferences 对象指向包含键值对的文件并提供读写这些文件的简单方法。 每个 SharedPreferences 文件由框架进行管理并且可以专用或共享。

本课向您展示如何使用 SharedPreferences API 存储和检索简单的值。

SharedPreferences API 仅用于读写键值对,您不得将其与 Preference API 混淆,后者帮助您为您的应用设置构建用户界面(尽管它们使用 SharedPreferences 作为其实现以保存应用设置)。 有关使用 Preference API 的信息,请参阅设置指南。

获取共享首选项的句柄

您可以通过调用以下两种方法之一创建新的共享首选项文件或访问现有的文件:

例如,以下代码在 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_READABLEMODE_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);
此网站会使用 Cookie 来存储您在此网站上指定的语言和显示选项偏好设置。

获取最新的 Android Developers 资讯和提示,助您在 Google Play 上取得成功。

* 必填字段

成功!

在微信上关注 Google Developers

要以浏览此网站吗?

您请求访问的是网页,但是您为此网站设置的语言偏好为

要更改您的语言偏好设置并以浏览此网站吗?如果以后您想要更改语言偏好设置,请使用每个页面底部的语言菜单。

该类需要 或更高的 API 级别

此文档已被隐藏,因为您为该文档选择的 API 级别是 。您可以使用左侧导航栏上方的选择器来更改文档的 API 级别。

要详细了解如何根据您的应用需求指定 API 级别,请参阅支持不同平台版本

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)