我试图从SharedPreferences中获取一个布尔值,该值是true,但每次都得到一个false值。名为“MyPref”的 SharedPreferences 文件包含以下代码:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="PREMIUM" value="true" />
</map>
我正在使用以下代码向MyActivity.class中的 SharedPreferences 添加值:
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 1); // 0 - for private mode
Editor editor = pref.edit();
editor.putBoolean("PREMIUM", true); // Storing boolean - true/false
editor.commit(); // commit changes
Log.d(TAG, "User is " + (mIsPremium ? "PREMIUM" : "NOT PREMIUM"));
并使用以下方法在多个类上检索它:
boolean mIsPremium = false;
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 1); // 0 - for private mode
mIsPremium = pref.getBoolean("PRIVATE", false); // getting boolean
Log.d("IS PREMIUM", String.valueOf(mIsPremium));
if(mIsPremium) {
// PREMIUM USER - NO ADS
} else {
// NOT PREMIUM USER - SHOW ADS
}
我总是将Premium的值设为false,发生这种情况的原因是什么以及如何解决?我正在使用安卓 4.2.2。谢谢你们。