我在初始化 Android 首选项时遇到问题。在PreferenceStore.initalize()
中,我有这 2 个语句:
mLogoOneCheck = sharedPreferences2.getBoolean(contextWrapper.getResources().getString(R.string.preferenceKeyLogoOne), true);
mLogoTwoCheck = sharedPreferences2.getBoolean(contextWrapper.getResources().getString(R.string.preferenceKeyLogoTwo), false);
注意每个语句末尾的布尔值,每个语句都有一个默认值。因此,用户长按背景,选择 LiveWallpaper,然后选择此动态壁纸(AE_LiveWallpaper_Test)。One 图标如预期般缓慢地从屏幕上落下。现在用户单击Settings -> Choose Logos
并看到一个带有 One 和 Two 的菜单。问题出在这里:两个复选框都被选中。我希望看到只有一个框被选中。
如果我更改代码以使两者都具有默认值 true,那么巧合的是,没有问题:
mLogoOneCheck = sharedPreferences2.getBoolean(contextWrapper.getResources().getString(R.string.preferenceKeyLogoOne), true);
mLogoTwoCheck = sharedPreferences2.getBoolean(contextWrapper.getResources().getString(R.string.preferenceKeyLogoTwo) true);
我究竟做错了什么?
整个项目在github上:
https ://github.com/falsedmitri/AE-LiveWallpaper_Test
要编译和运行它,您将需要以下内容:
https://github.com/RealMayo/AndEngine(GLES2-AnchorCenter)
https://github.com/RealMayo/AndEngineLiveWallpaperExtension(GLES2-AnchorCenter)