android - Android sharedpreferences.getBoolean()返回错误的默认值-LMLPHP

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

最佳答案

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

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

10-07 20:28