0

我正在为我们的应用程序实现首选项。我知道如何显示首选项 UI 以及如何使用SharedPreferences. 在我们的应用程序中,我需要处理两组首选项,我想问一下这个问题,特别是 Android 文档中的一个评论。

Preference.getSharedPreferences()的文档在该部分下有以下评论Return values

Returns此 Preference 读取其值的 SharedPreferences,如果未附加到 Preference 层次结构,则为 null。

我想问一下如何将 a 附加SharedPreferences到特定的Preference,无论是它EditTextPreference还是其他。换句话说,a 中的持久性代码如何Preference知道它应该将用户输入存储在一个特定SharedPreferences对象中而不是另一个对象中?

为了用一个例子进一步解释我的问题,假设我有以下内容:

SharedPreferences prefs1 = getSharedPreferences(file1, mode);
SharedPreferences prefs2 = getSharedPreferences(file2, mode);

我的问题是我应该使用什么 API,以便对象的持久性代码prefs1使用而不是.Preferenceprefs2

目标是运行 2.3.4 的 Nexus One。

也许答案很明显,但在阅读文档和搜索网络后我找不到它。预先感谢您的帮助。

4

1 回答 1

0

换句话说,Preference 中的持久性代码如何知道它应该将用户输入存储在一个特定的 SharedPreferences 对象中而不是另一个对象中?

Preference使用PreferenceManager's getSharedPreferences(),最终路由到getDefaultSharedPreferences().

欢迎您创建自己的Preference子类来更改此行为,但由于首选项屏幕系统可能未设计为处理多个SharedPreference对象,因此您的首选项更改可能不会持续存在。

IOW,我鼓励你重新考虑:

在我们的应用程序中,我需要处理两组偏好

于 2011-06-11T20:19:41.217 回答