我希望在每项活动中都可以访问我的应用程序首选项。我不想在每个活动中获得所有SharedPreferences。但是获得一次SharedPreferences,并拥有一个具有所有这些首选项值的全局对象,例如if (AppSettings.isSoundOn()) {// do stuff}
,并且该对象在任何地方都可用,没有ifs和buts。
我尝试使用静态类,但您无法从静态类获取共享首选项。此外,您获得SharedPreferences的类似乎必须扩展Activity,否则会产生错误。
我确信这通常是一种非常简单的方式,因为它是基本的应用程序功能,但我实际上没有涉及如何处理应用程序范围的首选项的Android开发书籍,以及我能找到的任何教程只是简单地介绍设置和获取SharedPreferences,但是你必须在每个活动中都这样做。
答案 0 :(得分:2)
创建类似MyApplication
的类,并从android.app.Application
扩展。
在那里,您可以访问共享偏好。
在每项活动中,您都可以使用Application
MyApplication app = (MyApplication)this.getApplication();
在MyApplication中放置一个获取Sharedpreference的公共方法和一个存储它的方法。