编辑:这段代码确实有效。我在使用它的代码中遇到问题。无论如何都要保留它,以防有人发现它有用。
我有一个类有两种方法来写入和读取 bool 持久偏好。但是,如果我写一个新值然后尝试读取它,我仍然得到旧值。只有当我终止应用程序并重新启动它时,我才会获得新的值(value)。知道问题出在哪里吗?
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);
}
最佳答案
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()
关于android - 如何读/写 bool 首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10369671/