官方API對於Sharepreference是這樣描述的:
這個方法一般是爲了存儲具有Key-Value特徵的數據。
我們可以從一個上下文對象中獲取共享應用,他提供一個框架在保存和獲取一些K-V的持久化數據。
具體步驟如下:
1.獲取一個Sharepreference:
SharedPreferences sharedPreferences = context.getSharedPreferences(
"userinfo", Context.MODE_PRIVATE);
2.獲取一個編輯器:
SharedPreferences.Editor editor = sharedPreferences.edit();
3.通過編輯器放入數據:
editor.putString("name", name);
editor.putString("pswd", pswd);
4.最後需要提交
editor.commit();
一個完整的代碼如下:
public boolean saveMessage(String name, String pswd) {
boolean flag = false;
SharedPreferences sharedPreferences = context.getSharedPreferences(
"userinfo", Context.MODE_PRIVATE);
//對數據進行編輯
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("name", name);
editor.putString("pswd", pswd);
flag = editor.commit(); //將數據持久化到存儲介質
return flag;
}
如果是讀數據,那麼需要Map類型來存儲:
1.生成一個HashMap對象:
Map<String,Object> map = new HashMap<String,Object>();
2.獲取共享引用對象:
SharedPreferences sharedPreferences =context.getSharedPreferences("userinfo", Context.MODE_PRIVATE);
3.取出數據並放入Map中:
String name = sharedPreferences.getString("name", null);
String pswd = sharedPreferences.getString("pswd", null);
map.put("name",name);
map.put("pswd", pswd);
完整代碼如下:
public Map<String,Object> getMessage(){
Map<String,Object> map = new HashMap<String,Object>();
SharedPreferences sharedPreferences =context.getSharedPreferences("userinfo", Context.MODE_PRIVATE);
String name = sharedPreferences.getString("name", null);
String pswd = sharedPreferences.getString("pswd", null);
map.put("name",name);
map.put("pswd", pswd);
return map;
}