我正在努力实现我们的应用程序的首选项。我知道如何使用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。
也许答案很明显,但在阅读文档和搜索网页后我找不到它。提前感谢您的帮助。
答案 0 :(得分:0)
换句话说,Preference中的持久性代码如何知道它应该将用户输入存储在一个特定的SharedPreferences对象中而不是另一个?
Preference
使用PreferenceManager
的{{1}},最终路由到getSharedPreferences()
。
欢迎您创建自己的getDefaultSharedPreferences()
子类来更改此行为,但由于首选项屏幕系统可能无法处理多个Preference
对象,因此您的首选项更改可能不会得到坚持。
我,我鼓励你重新考虑一下:
在我们的应用程序中,我需要处理两组首选项