Android資料存放區方式--SharedPreferences,sharedpreferences
Android資料存放區方式有如下四種:SharedPreferences、儲存到檔案、SQLite資料庫、內容提供者(Content provider)、儲存到網路伺服器。
本文主要介紹一下SharedPreferences
本文地址:http://www.cnblogs.com/wuyudong/p/5939872.html,轉載請註明出處。
SharedPreferences
如何儲存軟體配置參數?
Window: 採用ini檔案進行
J2SE應用: 採用properties屬性檔案
Android平台:提供一個SharedPreferences類,它是一個輕量級的儲存類,適合用於儲存軟體配置參數。
使用SharedPreferences儲存資料,其背後是用xml檔案存放資料,檔案存放在/data/data/<packagename>/shared_prefs目錄下
SharedPreferences介面
SharedPreferences介面主要負責讀取應用程式的Preferences資料,它提供了如下常用方法來訪問SharedPreferences的key_value索引值對
方法名稱 |
描述 |
public abstract boolean contains (String key) |
判斷SharedPreferences是否包含特定key的資料 |
public abstract SharedPreferences.Editor edit () |
返回一個Edit對象用於操作SharedPreferences |
public abstract Map<String, ?> getAll () |
擷取SharedPreferences資料裡全部的key-value對 |
getXXX(String key,XXX defvlaue) |
擷取SharedPreferences資料指定key所對應的value,如果該key不存在,返回預設值defValue。其中XXX可以是boolean、float、int、long、String等基本類型的值 |
Editor介面
由於SharedPreference是一個介面,而且在這個介面裡並沒有提供寫入資料和讀取資料的能力。但是在其內部有一個Editor內部的介面,Edit這個介面有一系列的方法用於操作SharedPreference。
方法名稱 |
描述 |
public abstract SharedPreferences.Editor clear () |
清空SharedPreferences裡所有的資料 |
public abstract boolean commit () |
當Editor編輯完成後,調用該方法可以提交修改,而且必須要調用這個資料才修改 |
public abstract SharedPreferences.Editor putXXX (String key, boolean XXX) |
向SharedPreferences存入指定的key對應的資料,其中XXX可以是boolean、float、int、long、String等基本類型的值 |
public abstract SharedPreferences.Editor remove (String key) |
刪除SharedPreferences裡指定key對應的資料項目 |
SharedPreferences儲存資料
SharedPreferences sharedPreferences = getSharedPreferences("wyd001", Context.MODE_PRIVATE);Editor editor = sharedPreferences.edit();//擷取編輯器editor.putString("name", "wyd");editor.putInt("age", 22);editor.commit();//提交修改
產生的wyd001.xml檔案內容如下:
<?xml version=“1.0” encoding=“utf-8” standalone=“yes” ?><map> <string name="name">wyd</string> <int name="age" value=“22" /></map>
SharedPreferences操作模式
getSharedPreferences(na, memode)方法
參數1:指定該檔案名稱,名稱不用帶尾碼。
參數2:指定檔案的操作模式,共有四種操作模式。
Context.MODE_PRIVATE:為預設操作模式,代表該檔案是私人資料,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原檔案的內容,如果想把新寫入的內容追加到原檔案中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式會檢查檔案是否存在,存在就往檔案追加內容,否則就建立新檔案。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有許可權讀寫該檔案。
MODE_WORLD_READABLE:表示當前檔案可以被其他應用讀取;MODE_WORLD_WRITEABLE:表示當前檔案可以被其他應用寫入。
getPreferences(mode)方法操作SharedPreferences,這個方法預設使用當前類不帶包名的類名作為檔案的名稱。
訪問SharedPreferences資料
訪問SharedPreferences中的資料代碼如下:
SharedPreferences sharedPreferences = getSharedPreferences("wyd001", Context.MODE_PRIVATE);//getString()第二個參數為預設值,如果preference中不存在該key,將返回預設值String name = sharedPreferences.getString("name", "");int age = sharedPreferences.getInt("age", 1);