如何读/写布尔偏好

use*_*880 6 android preferences sharedpreferences

编辑:此代码实际有效。我在使用它的代码中遇到了问题。无论如何都要保留它,以防任何人发现它有用。

我有一个带有两种方法的类,用于编写和读取布尔持久性首选项。但是,如果我写一个新值然后尝试读取它,我仍然会得到旧值。仅当我终止该应用程序并重新启动它时,我才获得新的价值。知道是什么问题吗?

 Context mContext;

 ....
 public void writeFlag(boolean flag) {
        SharedPreferences sharedPreferences = PreferenceManager
                .getDefaultSharedPreferences(mContext);
        Editor editor = sharedPreferences.edit();
        editor.putBoolean("mykey", flag);
        editor.commit();
}

public boolean readFlag() {
        SharedPreferences sharedPreferences =
               PreferenceManager.getDefaultSharedPreferences(mContext);
        return sharedPreferences.getBoolean("mykey", false);
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*wal 5

public static boolean getBooleanFromSP(String key) {
// TODO Auto-generated method stub
    SharedPreferences preferences = getApplicationContext().getSharedPreferences(" SHARED_PREFERENCES_NAME ", android.content.Context.MODE_PRIVATE);
    return preferences.getBoolean(key, false);
}//getPWDFromSP()


public static void saveBooleanInSP(String key, boolean value){
    SharedPreferences preferences = getApplicationContext().getSharedPreferences(" SHARED_PREFERENCES_NAME ", android.content.Context.MODE_PRIVATE);
    SharedPreferences.Editor editor =      preferences.edit();
    editor.putBoolean(key, value);
    editor.commit();
}//savePWDInSP()
Run Code Online (Sandbox Code Playgroud)