我正在开发的LiveWallpaper应用程序(我的第一个)出现了问题。考虑两个类:LiveWallpaperService和LiveWallpaperSettings。LiveWallpaperSettings扩展了PreferencyActivity。表示用户选择的偏好的示例数据,例如boolean displaySprite (true=>在屏幕上显示子画面,false不显示)通过SharedPreferences保存/保存在LiveWallpaperSettings中。
在启动应用程序(设置-> Display -> LiveWallpaper -> MyLiveWallpaper)时,需要知道保存的首选项,以便可以显示或不显示精灵。但是,在单击“设置”按钮之前,不会实例化LiveWallpaperSettings,因此SharedPreferences不可用,因此在此之前保存的设置不可用。
我在LiveWallpaperService.onCreateScene()中尝试过,但其中没有数据:
SharedPreferences startupPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
我能做什么?
发布于 2013-05-16 03:41:11
如果条目/sharedpref文件不存在,则有一个默认值:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
boolean display = settings.getBoolean("display", true);公共抽象布尔值(字符串键,布尔值defValue)
添加到API级别1中,从首选项中检索布尔值。
Parameters key要检索的首选项的名称。此首选项不存在时返回的defValue值。
希望我没有误解你的问题:)
发布于 2013-05-16 03:53:02
在首选项xml中设置默认值,并在MainActivity onCreate()中添加以下代码setDefaultValues(this, R.xml.yourxmlname, false);
https://stackoverflow.com/questions/16573567
复制相似问题