SharedPreferences是Android的一個輕量級存儲工具,采用的存儲結構是Key-Value的鍵值對方式,類似於Java的Properties類,二者都是把Key-Value的鍵值對保存在配置文件中。不同的是Properties的文件內容是Key=Value這樣的形式,而SharedPreferences的存儲介質是符合XML規范的配置文件。保存Sharedreferences鍵值對信息的文件路徑是/data/data/應用包名/shared_prefs/文件名.xml。
下面是一個共享參數的XML文件示例:
<?xml version="1.0" encoding="utf-8"?> <map> <string name="name">Mr Lee</string> <int name="age" value="20"/> <boolean name="married" value="true"/> <float name="weight" value="100.0"/> </map>
基於XML格式的特點,SharedPreferences主要適用於如下場合:
(1)簡單且孤立的數據。若是復雜且相互間有關的數據,則要保存在數據庫中。
(2)文本形式的數據。若是二進制數據,則要保存在文件中。
(3)需要持久化存儲的數據。在App退出后再次啟動時,之前保存的數據仍然有效。實際開發中,共享參數經常存儲的數據有App的個性化配置信息、用戶使用App的行為信息、臨時需要保存的片段信息等。
Sharedreferences 對數據的存儲和讀取操作類似於Map,也有put 函數用於存儲數據、get函數用於讀取數據。在使用共享參數之前,要先調用getSharedPreferences 函數聲明文件名與操作模式,示例代碼如下:
//從share.xml中獲取共享參數對象 SharedPreferences shared = getSharedPreferences("share", MODE_PRIVATE);
getSharedPreferences方法的第一個參數是文件名,上面的 share 表示當前使用的共享參數文件名是share.xml;第二個參數是操作模式,一般都填MODE_PRIVATE,表示私有模式。共享參數存儲數據要借助於Editor類,示例代碼如下:
//從share.xml中獲取共享參數對象 SharedPreferences shared = getSharedPreferences("share", MODE_PRIVATE); SharedPreferences.Editor editor = shared.edit(); // 獲得編輯器的對象 editor.putString("name", "MrLee"); // 添加一個名叫name的字符串參數 editor.putInt("age", 30); // 添加一個名叫age的整型參數 editor.putBoolean("married", true); // 添加-個名叫married 的布爾型參數 editor.putFloat("weight", 100f); // 添加一個名叫weight的浮點數參數 editor.commit(); // 提交編輯器中的修改
共享參數讀取數據相對簡單,直接使用對象即可完成數據讀取方法的調用,注意get方法的第二個參數表示默認值,示例代碼如下:
String name = shared.getString("name",""); //從共享參數中獲得名叫name的字符串 int age = shared.getInt("age",0); //從共享參數中獲得名叫age的整型數 boolean mrried = shared.getBoolean("married",false); //從共享參數中獲得名叫maried的布爾數 float weight= shared.getFloat("weight",0); // 從共享參數中獲得名叫weight的浮點數