在启动时加载SharedPreferences时出错

时间:2012-08-30 15:22:02

标签: android sharedpreferences

我显然做错了什么。在我的启动画面上,当它决定要去哪个活动时,我有以下代码:

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”按钮时,它应该保存共享首选项(或者至少这是我需要发生的事情)。

按钮工作,它转到下一个活动,然后再转到下一个,但是当我重新加载应用程序时,似乎没有保存布尔值,应用程序再次要求确认。

那么,我在哪里错了,在写作偏好时,或者在阅读正确的偏好时缺少什么?

2 个答案:

答案 0 :(得分:2)

您使用的是不同的偏好。

startupPrefs= getSharedPreferences("startupPrefs", MODE_WORLD_WRITEABLE);

这也应该是:

startupPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

答案 1 :(得分:2)

您正在读取默认的共享首选项,但是写入命名的首选项(“startupPrefs”),因此共享首选项有2个单独的实例