# Android自助餐之SharedPreferences
- [Android自助餐之SharedPreferences](#)
- [獲取SharedPreferences實例](#)
- [獲取鍵對應的值](#)
- [保存鍵值對](#)
### 獲取SharedPreferences實例
~~~
SharedPreferences settings=getSharedPreferences("settings-name",Mode);
~~~
第一個參數為Preferences的名稱,每個名稱對應一個xml文件。
第二個參數為創建模式,可選參數為:
> MODE_PRIVATE(只允許創建者及與創建者共享同一包名的應用訪問,也是默認創建模式)
MODE_WORLD_READABLE(在API17被棄用)(全局可讀)
MODE_WORLD_WRITEABLE(在API17被棄用)(全局可寫)
### 獲取“鍵”對應的“值”。
~~~
boolean value = settings.getBoolean("key-name", false);
~~~
第一個參數為“鍵”。
第二個參數為默認值(當獲取失敗時的取值,一般為改“鍵”不存在)。
### 保存鍵值對。
保存分三步:獲取`editor`即`SharedPreferences.Editor)`;`put`鍵值對;提交`editor`;
~~~
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("key-name", value);
//最后一定要提交
editor.commit();
~~~
可以`put`的內容包括基本類型和字符串。如果要保存復雜類型(如對象),則建議使用其他保存方式。若非要在`SharedPreferences`中保存對象,可以保存其`json`串。