访问SharedPreferences

时间:2013-05-15 19:36:53

标签: android sharedpreferences

我在LiveWallpaper应用程序(我的第一个)中遇到问题我正在开发。 考虑两个类:LiveWallpaperServiceLiveWallpaperSettingsLiveWallpaperSettings延伸PreferencyActivity。表示的示例数据 用户选择的首选项,例如boolean displaySprite(true =>在屏幕上显示精灵,false不显示)将通过SharedPreferences中的LiveWallpaperSettings保存/保留。

启动应用程序(设置 - >显示 - > LiveWallpaper - > MyLiveWallpaper)后,需要知道已保存的首选项,以便可以显示或不显示精灵。 但是,在单击“设置”按钮之前,LiveWallpaperSettings未实例化,因此SharedPreferences不可用,因此在此之前保存的设置不可用。

我在LiveWallpaperService.onCreateScene()中尝试了此操作,但它没有数据:
SharedPreferences startupPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

我该怎么办?

2 个答案:

答案 0 :(得分:1)

如果条目/ sharedpref文件不存在,则有一个默认值:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
boolean display = settings.getBoolean("display", true);

" public abstract boolean getBoolean(String key,boolean defValue)"

在API级别1中添加 从首选项中检索布尔值。

参数 key要检索的首选项的名称。 defValue如果此首选项不存在,则返回值。

希望我没有误解你的问题:)

答案 1 :(得分:0)

在您的首选项中,xml设置默认值,并在MainActivity onCreate()中添加以下代码setDefaultValues(this, R.xml.yourxmlname, false);