【发布时间】:2020-10-11 19:45:16
【问题描述】:
如何使用 AndroidX Perference 库保留多组首选项? 例如,用户可以在同一组设置中选择具有不同值的不同配置文件:
全局偏好:
- 选择的个人资料:foo
- 其他设置:等
配置文件 1:
- 姓名:foo
- 设置:酒吧
配置文件 2:
- 名称:酒吧
- 设置:你好
等
【问题讨论】:
如何使用 AndroidX Perference 库保留多组首选项? 例如,用户可以在同一组设置中选择具有不同值的不同配置文件:
全局偏好:
配置文件 1:
配置文件 2:
等
【问题讨论】:
我在这里看到两个选项:
对不同的配置文件使用具有不同名称的 Context.getSharedPreferences(String name, int mode)。 PreferenceManager 有一个 setDefaultValues 方法,在这种情况下也有一个名称。这种方法的缺点是设置屏幕仍将使用默认的共享首选项,而不是选择任何配置文件的首选项。
制作您自己的共享首选项包装器,扩展PreferenceDataStore 并实现所有方法。然后在配置文件更改时致电PreferenceManager.setPreferenceDataStore。设置屏幕将使用这种方法显示正确的值。在内部,您的包装器可以使用数据库来存储值,或者使用默认的共享首选项,为不同的配置文件附加不同的前缀。
我也没有尝试过,但我相信它可以工作。
【讨论】: