我试图使用SharedPreferences接口的自定义实现将应用程序的首选项持久保存到数据库(而不是默认的 XML). 为什么?我想使用PreferenceActivity的便利来构建UI,但是这个应用程序将在多个设备上使
为什么?我想使用PreferenceActivity的便利来构建UI,但是这个应用程序将在多个设备上使用,因此用户设置的首选项需要在设备之间保留.
所以..我已经编写了实现,但无法弄清楚如何将特定的SharedPreference与PreferenceActivity相关联.我知道使用getSharedPreferences(),但我怎么能覆盖呢?我可以以某种方式注册我的SharedPreferences吗?我没有在API中看到任何内容来执行此操作.
或者……如果我发现这一切都错了,请告诉我.谢谢.
我前段时间一直在研究这个问题.但是出于不同的原因.我发现PreferenceActivity与PreferenceManager高度耦合,它在内部使用PreferenceManager.getDefaultSharedPreferences()来获取SharedPreference实例.并且无法在PrefernceActivity中替换自定义PreferenceManager或SharedPreference实例.
我发现Preference框架不灵活,扩展或更改默认行为非常困难,有时甚至是不可能的.但我的猜测是,这个框架的设计者将“易用性”作为他们的首要任务,而不是可扩展性和灵活性.这是可以理解的.