在每个活动中使用共享首选项

时间:2013-09-08 11:20:49

标签: android sharedpreferences

我希望在每项活动中都可以访问我的应用程序首选项。我不想在每个活动中获得所有SharedPreferences。但是获得一次SharedPreferences,并拥有一个具有所有这些首选项值的全局对象,例如if (AppSettings.isSoundOn()) {// do stuff},并且该对象在任何地方都可用,没有ifs和buts。

我尝试使用静态类,但您无法从静态类获取共享首选项。此外,您获得SharedPreferences的类似乎必须扩展Activity,否则会产生错误。

我确信这通常是一种非常简单的方式,因为它是基本的应用程序功能,但我实际上没有涉及如何处理应用程序范围的首选项的Android开发书籍,以及我能找到的任何教程只是简单地介绍设置和获取SharedPreferences,但是你必须在每个活动中都这样做。

1 个答案:

答案 0 :(得分:2)

创建类似MyApplication的类,并从android.app.Application扩展。 在那里,您可以访问共享偏好。

在每项活动中,您都可以使用Application

获取MyApplication app = (MyApplication)this.getApplication();

在MyApplication中放置一个获取Sharedpreference的公共方法和一个存储它的方法。