Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 中文api (88)——SharedPreferences

Android 中文api (88)——SharedPreferences

編輯:Android開發實例

前言

  本章內容是android.content.SharedPreferences,版本為Android 2.3 r1,翻譯來自"madgoat"。

 

 

正文

  一、結構

 

public interface SharedPreferences

        

android.content.SharedPreferences

 

 

  二、概述

 

  用於訪問和修改getSharedPreferences(String, int)返回偏好設置數據(preference data)的一個接口。對於任何一組特殊的preferences,所有的客戶端共享一個此類單獨的實例。

修改Preferences必須通過一個SharedPreferences.Editor對象,以確保當他們提交存儲數據的操作時,preference值保持一致的狀態。

  注意:當前此類不支持多線程訪問。後續將添加。

  (譯者注:這裡譯為” 偏好設定”,類似於ini文件,用於保存應用程序的屬性設置)

  參見

        getSharedPreferences(String, int)

 

 

  三、內部類

 

           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對象。(譯者注:原子化——作為一個整體提交,原子性)

注意:如果你想要在SharedPreferences中實時顯示,剛通過Editor對象進行的修改,那麼你必須調用commit()方法。

返回值

返回一個SharedPreferences.Editor的新實例,允許你修改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。

        異常

ClassCastException   

 

public abstract float getFloat (String key, float defValue)

從preferences中獲取一個float類型的值。

    參數

key            獲取的preference的名稱

defValue 當此preference不存在時返回的默認值

返回值

如果preference存在,則返回preference的值,否則返回defValue。如果使用此名稱的preference不是一個float類型,則拋出ClassCastException。

異常

ClassCastException   

 

public abstract int getInt (String key, int defValue)

從preferences中獲取一個int類型的值。

    參數

key            獲取的preference的名稱

defValue 當此preference不存在時返回的默認值

返回值

如果preference存在,則返回preference的值,否則返回defValue。如果使用此名稱的preference不是一個int類型,則拋出ClassCastException。

異常

ClassCastException   

 

public abstract long getLong (String key, long defValue)

從preferences中獲取一個long類型的值。

    參數

key            獲取的preference的名稱

defValue 當此preference不存在時返回的默認值

返回值

如果preference存在,則返回preference的值,否則返回defValue。如果使用此名稱的preference不是一個long類型,則拋出ClassCastException。

異常

ClassCastException   

 

public abstract String getString (String key, String defValue)

從preferences中獲取一個String類型的值。

    參數

key            獲取的preference的名稱

defValue 當此preference不存在時返回的默認值

返回值

如果preference存在,則返回preference的值,否則返回defValue。如果使用此名稱的preference不是一個String類型,則拋出ClassCastException。

異常

ClassCastException   

 

public abstract void registerOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)

注冊一個回調函數,當一個preference發生變化時調用。

參數

listener    將會被調用的回調函數

        參見

    unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener)

 

public abstract void unregisterOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)

注銷一個之前(注冊)的回調函數

參數

listener    要被注銷的回調函數

參見

    registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener)

 

 

  五、補充
 

 

    示例代碼

 

      譯注: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);

//取得活動的Preferences對象
SharedPreferences settings = getPreferences(0);
//取得編輯對象
SharedPreferences.Editor editor = settings.edit();
//添加值
editor.putBoolean(“true”,flag);
//提交保存
editor.commit();
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved