SharedPreferences的簡單使用

將數據存到SharedPreferences中,首先要得到Sharedpreferecnces對象,三種方法java

1.Context類的getSharedPreferences("filename",model),第一個參數是文件名,第二個是模式。MODE_PRIVATE默認模式,和傳0同樣,表示只有當前應用程序能夠對這個SharedPreferences文件操做。 MODE_MULTI_PROCESS用於多個進場對同一個SharedPreferences文件操做this

2.Activity類中的getPreferences() 只接受一個模式參數,自動將當前活動的類名做爲SharedPreferences的文件名。code

3. PerferenceManager類中的getDefaultSharedPreferences()方法,這是個靜態方法,它只接收一個Context參數,並自動使用當前應用程序的包名做爲前綴來命名SharedPreferences文件對象

這兩天一在用 CheckBoxPreference,想要實現它被選中以後,退出再進來依然是你選中的狀態。還有我要作的是AFragment的CheckBoxPreference勾選以後,BFragment的Preference的Enabled()才爲true,BFragment的Preference才能夠被點擊跳轉到別的Activityget

獲得SharedPreferences對象以後,it

1 調用SharedPreferences對象的edit()方法來獲取一個SharedPreferences.Editor對象class

2 向SharedPreferences.Editor對象中添加數據List

3 調用commit()方法提交,從而完成數據存儲過程
file

由於A,BFragment在同一個包下面,並且我在選則第一種方法的時候,沒有模式選,不知道是否是公司的framwork改了,我就選了第三種方法model

B裏在oncreate裏

 mLed_settings=(Preference)findPreference(KEY_LED_SETTINGS);
 SharedPreferences preferences=PreferenceManager.getDefaultSharedPreferences(this.getActivity());
 boolean arg = preferences.getBoolean("ischecked", false);//讀key叫作ischecked的值,若是沒有,默認爲false
 mLed_settings.setEnabled(arg);
 }

A的oncreate

mOpenLedlightSettings = (CheckBoxPreference)findPreference(KEY_OPEN_LEDLIGHT);
if (mOpenLedlightSettings != null) {
    mOpenLedlightSettings.setOnPreferenceChangeListener(this);
    SharedPreferences shp = PreferenceManager.getDefaultSharedPreferences(this.getActivity());
    boolean arg = shp.getBoolean("ischecked", false);//查看下是否有狀態
    mOpenLedlightSettings.setChecked(arg);
    }
}
public boolean onPreferenceChange(Preference pref, Object newValue) {
    if (pref == mOpenLedlightSettings) {
    final boolean checked1 = (Boolean) newValue;
    mOpenLedlightSettings.setChecked(checked1);
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this.getActivity());
    Editor editor = preferences.edit();
    editor.putBoolean("ischecked", checked1);//把key爲ischecked的鍵值對寫入
    editor.commit();
    }
    return true;
}
相關文章
相關標籤/搜索