如何根据用户选择设置不同的首选项默认值?

时间:2013-01-22 11:37:51

标签: android android-preferences

我有一个Android应用程序,它有许多用户首选项。有些首选项是自定义的,这意味着Preference类会稍微修改一个值。大多数首选项都有默认值,这些默认值通过调用PreferenceManager.setDefaultValues()来应用,以满足此类自定义首选项。我的应用程序有许多常见的使用场景,但目前首选项默认值仅涵盖其中一种。我想询问一下她更喜欢哪种情况。但我不知道如何根据用户选择以相同简洁的方式应用默认值。有什么想法吗?

更新

默认值应仅在第一次运行时应用。用户被问及他打算如何使用应用程序,并根据他的答案应用默认值。他稍后将能够单独调整每个设置,因此没有理由稍后重新应用默认值。对于经验不足的用户来说,这只是一个帮手,这是必要的,因为我收到的反馈表明,如果没有持续的经验,某些设置并不明显。

1 个答案:

答案 0 :(得分:0)

我认为主要的问题是,何时用户是否应该允许应用特定用例的默认值(最初,任何时候?),以及当他们期望时将被应用(切换回来是否有意义?等)。

我认为可能存在随时间收集的任何基础数据的依赖关系,以及用户希望保留的基础数据。

如果您打算支持这种复杂情况,那么我会将模型视为三层:一组特定于用例的默认值,一组特定于用例的更改,以及最终的投影(默认值通过调整覆盖)。这意味着用户可以切换回原来的用例而不会丢失个性化设置。

只是在没有深入了解应用程序性质的情况下首先考虑一下。

<强>更新

根据您的澄清,我的建议是每个用例使用一个首选项文件并致电PreferenceManager.setDefaultValues(Context, String, int, int, boolean)