SharedPreferences保存的数据只要是简单类型的key-value对
SharedPreferences接口主要负责读取应用程序的Preferences数据,有如下方法来访问SharedPreferences中的key-value对。
--》1.boolean contains(String key);判断SharedPreferences是否包含特点key的数据。
--》2.abstract Map<String, ?> getAll(); 获取SharedPreferences数据里全部的key-value对。
--》3.boolean getXxx(String key, xxx defValue);获取SharedPreferences里指定key的value,xxx可以是boolean、float、int、long、String等各种基本类型。
SharedPreferences接口并没有提供写入数据的能力,而是通过SharedPreferences的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象,Editor提供了如下方法来向SharedPreferences写入数据。
--》1.SharedPreferences.Editor clear();清空SharedPreferences里所有数据。
--》2.SharedPreferences.Editor putXxx(String key, xxx value);
--》3.SharedPreferences.Editor remove(String key);删除指定key对应的数据项。
--》4.boolean commit();当Editor编辑完成后,调用该方法提交修改。
SharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode);方法来获取SharedPreferences实例,该方法第二个参数的支持如下几个值:
Context.MODE_PRIVATE: 指定SharedPreferences数据只能被本应用程序读写。
Context.MODE_WORLD-READABLE: 指定该SharedPreferences数据能被其它应用程序读,但不能写。
Context.MODE_WORLD_WRITEABLE: 同反
信息存储位置:
将string_infos.xml文件导出,查看如下:
- <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
- <map>
- <string name="username">zhangsan</string>
- <string name="userpassword">123</string>
- <boolean name="open" value="true" />
- <int name="count" value="23" />
- <float name="PI" value="3.1415926" />
- </map>
下面是在SharedPreference中存储和获取数据的代码:
- public static void saveInfo(Context context, String userName, String userPass){
- SharedPreferences sp = context.getSharedPreferences("login", Context.MODE_PRIVATE);
- Editor ed = sp.edit();
- ed.putString("username", userName);
- ed.putString("userpassword", userPass);
- ed.commit();
- }
- public static Map<String,String> getUserInfo(Context context){
- SharedPreferences sp = context.getSharedPreferences("login", Context.MODE_PRIVATE);
- String name = sp.getString("username", null);
- String pass = sp.getString("userpassword", null);
- Map<String, String> map = new HashMap<String, String>();
- map.put("username", name);
- map.put("userpass", pass);
- return map;
- }