我显然做错了什么。在我的启动画面上,当它决定要去哪个活动时,我有以下代码:
SharedPreferences getPrefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
boolean disclamerChecked = getPrefs.getBoolean("disclamer", false);
boolean medicalScreeningChecked = getPrefs.getBoolean("screening", false);
所以,我正在尝试阅读2应用程序安装时应该为false的布尔值 设置完成后,它应该永久正确。
现在,在我的活动中(仅在目前的Disclamer),我有以下内容:
private void setDisclamerPropertie() {
// TODO Auto-generated method stub
startupPrefs= getSharedPreferences("startupPrefs", MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = startupPrefs.edit();
editor.putBoolean("disclamer", true);
editor.commit();
return;
}
在On Create功能中调用此函数,当单击“accept”按钮时,它应该保存共享首选项(或者至少这是我需要发生的事情)。
按钮工作,它转到下一个活动,然后再转到下一个,但是当我重新加载应用程序时,似乎没有保存布尔值,应用程序再次要求确认。
那么,我在哪里错了,在写作偏好时,或者在阅读正确的偏好时缺少什么?
答案 0 :(得分:2)
您使用的是不同的偏好。
startupPrefs= getSharedPreferences("startupPrefs", MODE_WORLD_WRITEABLE);
这也应该是:
startupPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
答案 1 :(得分:2)
您正在读取默认的共享首选项,但是写入命名的首选项(“startupPrefs”),因此共享首选项有2个单独的实例