Android SharedReferences.getBoolean()返回错误的默认值

Android SharedReferences.getBoolean()返回错误的默认值,android,android-sharedpreferences,Android,Android Sharedpreferences,在图片上,您可以看到布尔变量采用默认值,即使SharedReferences中有一个键-值对具有正确的键。这是什么原因造成的?在代码中,它位于onCreate方法的末尾。然后调用onMapReady方法(从com.google.android.gms.maps.OnMapReadyCallback),在这里我检查相同的布尔值,看看是否必须在地图上放置一些标记。在该方法中,getBoolean()行为是正确的,默认值被忽略。这对我来说没有任何意义,任何人都可以帮助我吗?如果键不存在,getBool


在图片上,您可以看到布尔变量采用默认值,即使
SharedReferences
中有一个键-值对具有正确的键。这是什么原因造成的?在代码中,它位于
onCreate
方法的末尾。然后调用
onMapReady
方法(从
com.google.android.gms.maps.OnMapReadyCallback
),在这里我检查相同的布尔值,看看是否必须在地图上放置一些标记。在该方法中,
getBoolean()
行为是正确的,默认值被忽略。这对我来说没有任何意义,任何人都可以帮助我吗?

如果键不存在,getBoolean方法将返回默认值。在您的情况下,默认值为false,如果SharedReference的键不存在,则在您的情况下为false

您正在调试中显示HashMapmMap的值,但同一个键的eu.arrowhed.arrowheaddemo的内容是什么?

1)您是否打算在键“isThereReservation”中使用空格?在调试代码中,变量没有空格。确保使用正确的键,否则将获得默认值

2) 您如何保存SharedRef?您的代码应该是:

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);

请显示您将该布尔值放入同一共享首选项的位置。在“活动”中,refs是一个全局变量,您可以在图片上看到唯一的初始化。mMap hashmap属于prefs变量。我觉得自己很笨,谢谢你。。。我看了10遍拼写代码,却没有注意到空格。我应该删除这个问题,对吗?因为这可能对任何人都没有帮助。哈哈!我们所有人都会这样!不用担心,非常欢迎D如果你认为我的答案令人满意,请把它标记为接受,并留下一个投票:D