使用 SharedPreferences 實現數據的存儲和讀取


在開發的過程中我們必須遇到的就是如何對用戶的數據進行有效的存儲以及讀取。我們舉個例子,現在我們使用app,當我們登陸一個賬號的時候選擇記住密碼軟件就會記住我們的賬號以及密碼,我們退出當前賬號,就可以直接點擊登陸進入賬號內部,而不需要再輸入賬號和密碼了。那么這就是今天我們要說的,如何對用戶輸入的賬號以及密碼進行存儲,並且進行顯示。這里我們使用到了google工程師向我們推薦的一個API——SharedPreferences

  • 關於SharedPreferences

它是android.content下的一個接口,官方對他的描述是這樣的:用於訪問和修改getSharedPreferences(String, int)返回偏好設置數據(preference data)的一個接口。對於任何一組特殊的preferences,所有的客戶端共享一個此類單獨的實例。修改Preferences必須通過一個SharedPreferences.Editor對象,以確保當他們提交存儲數據的操作時,preference值保持一致的狀態。最后再提交數據的時候必須使用commit()方法將數據完全寫入。

它的優點在於會對一些特殊的字符進行分辨,達到准確讀取的目的,傳統上我們選擇以特殊分隔符來分割要存儲的數據,這樣雖然會簡單點,但是如果用戶舌設置的數據同樣包含這個分隔符,那么將造成讀取失誤。

  • 關於SharedPreferences的實例

這里我只介紹關鍵代碼,整個工程可以在該鏈接下載:http://files.cnblogs.com/files/ghylzwsb/shareprefenrence.rar

 


 1、使用saveUserInfo()方法來存儲用戶的數據:

 1   /**
 2      * 保存用戶名 密碼的業務方法
 3      * @param context 上下文
 4      * @param username 用戶名
 5      * @param pas 密碼
 6      * @return true 保存成功  false 保存失敗
 7      */
 8     public static void saveUserInfo(Context context,String username,String pas){
 9         /**
10          * SharedPreferences將用戶的數據存儲到該包下的shared_prefs/config.xml文件中,
11          * 並且設置該文件的讀取方式為私有,即只有該軟件自身可以訪問該文件
12          */
13         SharedPreferences sPreferences=context.getSharedPreferences("config", context.MODE_PRIVATE);
14         Editor editor=sPreferences.edit();
15         //當然sharepreference會對一些特殊的字符進行轉義,使得讀取的時候更加准確
16         editor.putString("username", username);
17         editor.putString("password", pas);
18         //這里我們輸入一些特殊的字符來實驗效果
19         editor.putString("specialtext", "hajsdh><?//");
20         editor.putBoolean("or", true);
21         editor.putInt("int", 47);
22         //切記最后要使用commit方法將數據寫入文件
23         editor.commit();
24     }

2、當用戶重新打開軟件時使用如下代碼將其顯示出來:

1      //顯示用戶此前錄入的數據
2         SharedPreferences sPreferences=getSharedPreferences("config", MODE_PRIVATE);
3         String username=sPreferences.getString("username", "");
4         String password =sPreferences.getString("password", "");
5         ed_username.setText(username);
6         ed_pasw.setText(password);

3、軟件運行之后我們可以發現config.xml文件的內容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="specialtext">hajsdh&gt;&lt;?//</string>
<string name="username">dsa</string>
<string name="password">dasdasd</string>
<int name="int" value="47" />
<boolean name="or" value="true" />
</map>

我們看到,在xml文件中“><”被轉以為“&gt;&lt;”,這也為數據的准確讀取做好了規范。

 

以下是程序運行的結果:


 

  • 總結

至此SharedPreferences的應用結束。在以后的開發過程中,應當多家注意使用官方推薦的API,這會對數據的安全以及數據的完整性有所保障。

 

 

2016-04-16

BOB

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM