天天看點

Android 中文api (88)——SharedPreferences

一、結構

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();

繼續閱讀