如何将首选项附加到特定的SharedPreferences?

时间:2011-06-11 19:26:28

标签: android persistence sharedpreferences preference

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

documentation for Preference.getSharedPreferences()Return values部分下面有以下评论:

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

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

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

prefs1

我的问题是我应该使用哪种API,以便Preference对象的持久性代码使用prefs2而不是{{1}}。

目标是Nexus One,运行2.3.4。

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

1 个答案:

答案 0 :(得分:0)

  

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

Preference使用PreferenceManager的{​​{1}},最终路由到getSharedPreferences()

欢迎您创建自己的getDefaultSharedPreferences()子类来更改此行为,但由于首选项屏幕系统可能无法处理多个Preference对象,因此您的首选项更改可能不会得到坚持。

我,我鼓励你重新考虑一下:

  

在我们的应用程序中,我需要处理两组首选项