2

我正在寻找一种创建动态首选项的方法,我不需要对首选项键进行硬编码,并且我可以拥有可变数量的首选项。基本上,我的应用程序将允许用户创建多个配置文件,并且每个配置文件都将为固定数量的首选项保存自定义值。
所以这样,用户不必每次想要这个应用程序以不同的方式运行时都改变偏好,他只需切换配置文件即可。我认为可行的一种方法是对所有标准 Preference 类进行子类化,并使用我的自定义首选项键调用它们的 setKey 方法,其中包含配置文件名称,但这很难看。那么有没有一种更清洁、更符合标准的方法来做到这一点?问候, 德鲁瓦

4

1 回答 1

3

您可以使用以下方法为每个用户将不同的首选项保存在不同的文件中getSharedPreferences

getSharedPreferences()- 如果您需要多个按名称标识的首选项文件,请使用此选项,您可以使用第一个参数指定该名称。

这样,您可以执行以下操作:

SharedPreferences settings = getSharedPreferences("prefs_user_"+user_id, 0);
// from now on you can use use the normal way to set or get the preferences

我假设您正在使用一个id来识别他们的用户。

于 2010-08-22T14:59:01.137 回答