android - 启动时加载 SharedPreferences 时出错

标签 android sharedpreferences

我显然做错了什么。在我的初始屏幕上,当它决定去哪个 Activity 时,我有以下代码:

SharedPreferences getPrefs = PreferenceManager
                        .getDefaultSharedPreferences(getBaseContext());
                boolean disclamerChecked = getPrefs.getBoolean("disclamer", false);
                boolean medicalScreeningChecked = getPrefs.getBoolean("screening", false);

因此,我正在尝试读取 2 个在应用程序安装时应该为 false 的 bool 值,并且 设置完成后,它应该永久为真。

现在,在我的 Activity 中(目前仅免责声明)我有以下内容:

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 函数中调用,当单击“接受”按钮时,它应该保存共享首选项(或者至少这是我需要发生的)。

按钮有效,它转到下一个 Activity ,然后那个 Activity 再次转到下一个,但是当我重新加载应用程序时, bool 值似乎没有保存,应用程序再次要求确认。

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

最佳答案

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

关于android - 启动时加载 SharedPreferences 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200275/

相关文章:

java - 在不使应用程序崩溃的情况下抛出异常

java - Android Studio/Java/XML 中的 "Unbound Prefix"是什么?

java - 需要弄清楚如何从 Android 数据库中删除

java - 如果将 SharedPreferences 放在那里,代码将不起作用

android - 有条件地应用 Gradle 插件

android - SQLite 和 SQL 有什么区别

java - 始终添加到最后一个列表项位置并保持它

android - SharedPreferences Android 中的 NullPointerException

android - 这是在 android 的本地内存中存储自定义数组列表的更好方法

android - SharedPreferences 值未更新