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

Zol*_*auf 1 android android-sharedpreferences

在此输入图像描述

在图片上,您可以看到布尔变量采用默认值,即使SharedPreferences右键中存在键值对.是什么导致这个?在代码中,这是onCreate方法的结尾.在此之后,该onMapReady方法被调用(from com.google.android.gms.maps.OnMapReadyCallback),其中我检查SAME布尔值,以查看是否我必须在地图上放置一些标记.在该方法中,getBoolean()行为是正确的,默认值被忽略.这对我没有任何意义,任何人都可以帮助我吗?

Rip*_*ppr 7

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

2)你如何保存sharedPref?你的代码应该是:

myPrefs = myContext.getSharedPreferences("MY_PREFERENCE_NAME", MODE_PRIVATE);
myPrefEditor = myPrefs.edit();
myPrefsEditor.clear();
myPrefsEditor.putBoolean("MY_KEY",myBool);
Run Code Online (Sandbox Code Playgroud)

然后您可以使用以下方式访问:

myPrefs = myContext.getSharedPreferences("MY_PREFERENCE_NAME", MODE_PRIVATE);
myPrefs.getBoolean("MY_KEY",MY_DEFAULT_VALUE);
Run Code Online (Sandbox Code Playgroud)