我正在寻找一种创建动态首选项的方法,我不需要对首选项键进行硬编码,而我可以拥有可变数量的首选项。
基本上,我的应用程序将允许用户创建多个配置文件,每个配置文件将为固定数量的首选项保存自定义值。
这样,用户每次希望此应用程序以不同方式运行时都不必更改首选项,他只需切换配置文件即可。
我认为可行的一种方法是通过子类化所有标准的Preference类并使用包含配置文件名称的自定义首选项键调用它们的setKey方法,但这很难看。
那么有更清洁,更符合标准的方法吗?
问候,
Dhruwat
答案 0 :(得分: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
来识别用户。