1

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

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

我敢肯定,这通常是一种愚蠢的简单方法,因为它是基本的应用程序功能,但我所拥有的 Android 开发书籍实际上都没有涵盖如何处理应用程序范围的偏好,而且我能找到的任何教程都只涉及设置并获得 SharedPreferences 这很简单,但是您必须在每个活动中都这样做。

4

1 回答 1

2

创建一个类MyApplication,并从android.app.Application. 在那里您可以访问共享首选项。

在每个活动中,您都可以Application使用MyApplication app = (MyApplication)this.getApplication();

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

于 2013-09-08T11:23:07.367 回答