正文
一、結構
public interface SharedPreferences
android.content.SharedPreferences
二、概述
注意:目前此類不支援多線程通路。後續将添加。
(譯者注:這裡譯為” 偏好設定”,類似于ini檔案,用于儲存應用程式的屬性設定)
參見
三、内部類
interface SharedPreferences.Editor
用于修改SharedPreferences對象設定值的接口。
interface SharedPreferences.OnSharedPreferenceChangeListener
接口定義一個用于在偏好設定(shared preference)改變時調用的回調函數。
四、公共方法
public abstract boolean contains (String key)
判斷preferences是否包含一個preference。
參數
key 想要判斷的preference的名稱
傳回值
如果preferences中存在preference,則傳回true,否則傳回false。
public abstract SharedPreferences.Editor edit ()
針對preferences建立一個新的Editor對象,通過它你可以修改preferences裡的資料,并且原子化的将這些資料送出回SharedPreferences對象。(譯者注:原子化——作為一個整體送出,原子性)
public abstract Map<String, ?> getAll ()
取得preferences裡面的所有值
傳回一個map,其中包含一列preferences中的鍵值對
異常
空指針異常(NullPointerException)
public abstract boolean getBoolean (String key, boolean defValue)
從preferences中擷取一個boolean類型的值。
參數
key 擷取的preference的名稱
defValue 當此preference不存在時傳回的預設值
如果preference存在,則傳回preference的值,否則傳回defValue。如果使用此名稱的preference不是一個boolean類型,則抛出ClassCastException。
public abstract float getFloat (String key, float defValue)
從preferences中擷取一個float類型的值。
如果preference存在,則傳回preference的值,否則傳回defValue。如果使用此名稱的preference不是一個float類型,則抛出ClassCastException。
異常
public abstract int getInt (String key, int defValue)
從preferences中擷取一個int類型的值。
如果preference存在,則傳回preference的值,否則傳回defValue。如果使用此名稱的preference不是一個int類型,則抛出ClassCastException。
public abstract long getLong (String key, long defValue)
從preferences中擷取一個long類型的值。
如果preference存在,則傳回preference的值,否則傳回defValue。如果使用此名稱的preference不是一個long類型,則抛出ClassCastException。
public abstract String getString (String key, String defValue)
從preferences中擷取一個String類型的值。
如果preference存在,則傳回preference的值,否則傳回defValue。如果使用此名稱的preference不是一個String類型,則抛出ClassCastException。
public abstract void registerOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)
注冊一個回調函數,當一個preference發生變化時調用。
listener 将會被調用的回調函數
參見
public abstract void unregisterOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)
登出一個之前(注冊)的回調函數
listener 要被登出的回調函數
參見
五、補充
文章精選
示例代碼
譯注:Shared Preferences儲存位置:/data/data/app_name/shared_prefs/*.xml
private boolean flag = false;
//取得活動的Preferences對象
SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);
//取得值
flag = settings.getBoolean(“flag”,false);
SharedPreferences settings = getPreferences(0);
//取得編輯對象
SharedPreferences.Editor editor = settings.edit();
//添加值
editor.putBoolean(“true”,flag);
//送出儲存
editor.commit();
本文轉自over140 51CTO部落格,原文連結:http://blog.51cto.com/over140/582420,如需轉載請自行聯系原作者