# 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`串。