Android sharedpreferences.getBoolean() returns 错误,默认值
Android sharedpreferences.getBoolean() returns the wrong, default value
在图片上你可以看到布尔变量取了默认值,即使在 SharedPreferences
中有一个键值对与正确的键。什么会导致这个?在代码中,这是在 onCreate
方法的末尾。在此之后,调用 onMapReady
方法(来自 com.google.android.gms.maps.OnMapReadyCallback
),我在其中检查相同的布尔值,以查看是否必须在地图上放置一些标记。在该方法中 getBoolean()
行为是正确的,默认值被忽略。这对我来说没有任何意义,任何人都可以帮助我吗?
方法 getBoolean return 如果键不存在则默认值。在您的情况下,默认值为 false,如果 SharedPreference 的键不存在,则在您的情况下为 false。
您在调试中显示了 HashMap mMap 的值,但对于同一键,eu.arrowhed.arrowheaddemo 的内容是什么?
1) 您是否打算在键 "isThereReservation " 中使用 space? 在您的调试代码中,变量没有 space.确保您使用正确的密钥,否则您将获得默认值!
2) 你如何保存 sharedPref? 你的代码应该是:
myPrefs = myContext.getSharedPreferences("MY_PREFERENCE_NAME", MODE_PRIVATE);
myPrefEditor = myPrefs.edit();
myPrefsEditor.clear();
myPrefsEditor.putBoolean("MY_KEY",myBool);
然后您可以使用以下方式访问:
myPrefs = myContext.getSharedPreferences("MY_PREFERENCE_NAME", MODE_PRIVATE);
myPrefs.getBoolean("MY_KEY",MY_DEFAULT_VALUE);
在图片上你可以看到布尔变量取了默认值,即使在 SharedPreferences
中有一个键值对与正确的键。什么会导致这个?在代码中,这是在 onCreate
方法的末尾。在此之后,调用 onMapReady
方法(来自 com.google.android.gms.maps.OnMapReadyCallback
),我在其中检查相同的布尔值,以查看是否必须在地图上放置一些标记。在该方法中 getBoolean()
行为是正确的,默认值被忽略。这对我来说没有任何意义,任何人都可以帮助我吗?
方法 getBoolean return 如果键不存在则默认值。在您的情况下,默认值为 false,如果 SharedPreference 的键不存在,则在您的情况下为 false。
您在调试中显示了 HashMap mMap 的值,但对于同一键,eu.arrowhed.arrowheaddemo 的内容是什么?
1) 您是否打算在键 "isThereReservation " 中使用 space? 在您的调试代码中,变量没有 space.确保您使用正确的密钥,否则您将获得默认值!
2) 你如何保存 sharedPref? 你的代码应该是:
myPrefs = myContext.getSharedPreferences("MY_PREFERENCE_NAME", MODE_PRIVATE);
myPrefEditor = myPrefs.edit();
myPrefsEditor.clear();
myPrefsEditor.putBoolean("MY_KEY",myBool);
然后您可以使用以下方式访问:
myPrefs = myContext.getSharedPreferences("MY_PREFERENCE_NAME", MODE_PRIVATE);
myPrefs.getBoolean("MY_KEY",MY_DEFAULT_VALUE);