如何在安卓偏好设置中保存启用状态



你好,我写了一个Android应用程序,它有两个首选项,一个复选框和一个首选项列表。当复选框标记为选中时,首选项列表将变为启用状态。我已经设法使用putBoolean()方法保存复选框"已选中"状态。

getPreferenceManager().getSharedPreferences().edit().putBoolean(key, boolean);
getPreferenceManager().getSharedPreferences().edit().commit();

但是如何保存isEnabled值,以便在我离开和返回时它不会重置?

普特布尔人怎么知道要设置布尔值呢?

@Override 
public void onPause() { 
    super.onPause(); 
    save(l.isEnabled());
} 
@Override 
public void onResume() { 
    super.onResume(); 
    l.setEnabled(load());
} 
private void save(final boolean b) { 
          //what to put instead of key in order to save the preference list ENABLED sate?? 
          getPreferenceManager().getSharedPreferences().edit().putBoolean(key, b);
    getPreferenceManager().getSharedPreferences().edit().commit();
}
private boolean load(String key) { 
    return getPreferenceManager().getSharedPreferences().getBoolean(key, false);
} 

启用状态的保存方式可以与保存"已检查"状态的方式相同,因为 isEnabled() 返回布尔值。

SharedPreferences.Editor prefEditor = PreferenceManager.getDefaultSharedPreferences(this).edit();
prefEditor.putBoolean("prefs.preferenceList.enabled", preferenceList.isEnabled());  
prefEditor.commit();
然后返回要

返回状态,请使用 setEnabled() 设置复选框的启用状态。在创建期间,您可以执行类似操作。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
preferenceList.setEnabled(prefs.getBoolean("prefs.preferenceList.enabled", false);
getPreferenceManager().getSharedPreferences().edit().putBoolean(key, b);
getPreferenceManager().getSharedPreferences().edit().commit();

您不应该再次调用 edit(),因为每次调用 edit 时,它都会创建 ppreferencesEditor 的新实例。因此,您的 putBoolean 永远不会被提交。

这应该是

SharedPreferences.Editor prefs = getPreferenceManager()
                                 .getSharedPreferences()
                                 .edit();
prefs.putBoolean(key,b);
prefs.commit();

相关内容

  • 没有找到相关文章

最新更新