为什么布尔值未保存在首选项中

问题描述

我在首选项中存储了许多数值和一些布尔值。数字没有问题,它们完全按照我的期望进行保存和从内存中读取。但是逻辑值并非总是如此。出于某种原因,有时会发生一个值被保存的情况(我检查了调试期间的值),而下一次读取了另一个值。然而,这并非总是如此。我不明白为什么会这样。我已经搜索了有关首选项的问题,但没有找到任何类似的问题。也许我做错了。 这是一段代码

private Preferences preferences;
preferences = Gdx.app.getPreferences(prefName);

private void savePref() {  
    preferences.put(getMap());
    preferences.put(getBool());

    preferences.flush();
}

public void loadPref() {

    if (preferences.contains(someValue) {
      for (Map.Entry<String,Integer> integerEntry : getMap().entrySet()){
           getMap().put(integerEntry.getKey(),preferences.getInteger(integerEntry.getKey()));
      }

      for (Map.Entry<String,Boolean> integerEntry : getBool().entrySet(){
           getBool().put(integerEntry.getKey(),preferences.getBoolean(integerEntry.getKey()));
      }
     }     
}

UPD:
我仍然不明白为什么,但是一切都可以在模拟器上正常运行,但不能在手机上正常运行。我想我做的一切都正确,问题不在于我。 我仍然很高兴知道这种情况为什么会发生。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...