1、簡介
SharedPreferences是一種輕型的數據存儲方式,它的本質是基於XML文件存儲key-value鍵值對數據,一般用來存儲一些簡單的配置信息。 java
2、存儲位置
在/data/data/<包名>/shared_prefs目錄下。 編輯器
3、操做數據
SharedPreferences對象自己只能獲取數據而不支持存儲和修改,存儲修改是經過Editor對象實現。
具體操做過程:
ide
一、根據Context獲取SharedPreferences對象
二、利用edit()方法獲取Editor對象。
三、經過Editor對象存儲key-value鍵值對數據。
四、經過commit()方法提交數據。 函數
4、實例代碼 this
public class SharePreActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //獲取SharedPreferences對象 Context ct = SharePActivity.this; SharedPreferences sp = ct.getSharedPreferences("MY_PRE", MODE_PRIVATE); //存入數據 Editor editor = sp.edit(); editor.putString("STR_KEY", "string"); editor.putInt("INT_KEY", 1); editor.putBoolean("BOO_KEY", true); editor.commit(); //返回STRING_KEY的值,定義key值錯誤或者此key無對應value值的話返回"" Log.d("look_sharePre", sp.getString("STR_KEY", "")); //若是OTHER_KEY不存在,定義key值錯誤或者此key無對應value值的返回值爲"other" Log.d("look_sharePre", sp.getString("OTHER_KEY", "other")); } }
注:在私有目錄下生成一個MY_PRE.xml文件,裏面採用鍵值對的形式存儲數據。 spa
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="STR_KEY">string</string> <int name="INT_KEY" value="1" /> <boolean name="BOO_KEY" value="true" /> </map>
5、方法詳解 code
一、getSharedPreferences(String name, int mode)的兩個參數的:參數2:mode,打開方式,通常都用Activity.MODE_PRIVATE、MODE_PRIVATE xml
二、registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener):
註冊一個當preference發生改變時被調用的回調函數 對象
三、unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener):
刪除當前回調函數 接口
四、SharedPreferences.Editor接口
用於修改SharedPreferences對象的內容,全部更改都是在編輯器所作的批處理,而不是複製回原來的SharedPreferences或持久化存儲,直到你調用commit(),纔會永久存儲。
方法說明:
clear():清除內容。
commit():提交修改
remove(String key):刪除preference
6、擴展功能
一、音效設置
保存應用程序當前是否 播放音效的狀態。當前音效狀態處於關閉時,按「+」鍵來開啓音效,而後點擊返回按鈕退出程序 ,再次啓動應用程序,如今的音效狀態就處於開的狀態。保存操做是放在 back按鈕的監聽事件裏邊完成的。 在這個程序中咱們在退出時把音效狀態保存到 Preferences 中,所以在啓動時就讀取出上次保存的數據。上次保存的是什麼狀態 ,在打開的時候就是什麼狀態。
二、記住密碼