1.SharedPreferences存儲
SharedPreferences時使用鍵值對的方式來存儲數據的,也就是在保存一條數據時,需要給這條數據提供一個對應的鍵,這樣在讀取的時候就可以通過這個鍵把相應的值取出來
SharePreferences是一個接口,不能直接使用,但可以通過以下兩種方法獲得:
1.1.1Context類的getSharePreferences(String name ,ine mode)方法來獲得一個SharePreferences對象:
此方法接收兩個參數,第一個參數用於指定SharedPreference文件的名稱,即存儲XML文件的名稱,如果存在,則會直接引用,如果指定的文件不存在則會創建一個,SharedPreference文件都是存放在/data/data/<包名>/shared_prefs/存儲的XML文件目錄下,第二個參數表示文件的存儲模式(該方式創建的XML文件可以被同一個軟件的Activity引用)。
文件的幾種存儲模式:
MODE_PRIVATE:表示私有文佳,該文件智能被創建他的文件所訪問
MODE_APPEND:表示新的存儲內容會添加在原有文件內容的后面。
MODE_WORLD_READABLE:表示該文件能被所有的文件讀取,但是不可以寫入。
MODE_WORLD_WEITABLE:表示該文件能被所有的文件寫入,也可以讀取
MODE_MULTI_PROCESS:表示改文件可以被多個進程同時訪問,適用於Android2.3及之后的版本。
1.1.2:調用Activity對象的getPreferences(int mode)方法
該方法有一個參數,表示文件的存儲模式,具體模式童第軼中相同,這種方法獲得的對象只能被該方法所在的Activity所調用
1.2還要創建一個SharePreferences.Editor類的對象,該類負責具體的寫入操作,創建方法使通過SharePreferences類的edit()方法來創建。
通常有以下幾種方法:
putBoolean(String key,boolean value) putString(String key,String value) putInt(String key,int value) putFloat(String key,float value) putLong(String key,long value) commit();//在執行完各種寫入、刪除、修改的操作后,通過此方法來正式提交數據,確認存儲文件的數據變化 clear();//清除鍵值對的方法 remove(String key);//刪除官集資所對應的值 getAll();//讀取存儲文件中的所有數據,返回一個Map類型的值,來存放所有的鍵值對 getBoolean(String key,boolean defValue) getString(String key,String defValue) getInt(String key,String defValue) getFloat(String key,String defValue) getLong(String key,String defValue) contains(String key) registerSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener);//注冊監聽器,來監聽SharePreferences的更改事件,在onCreate()方法中設置 unregisterSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener);//注銷監聽器,不再監聽SharePreferences的更改事件。
存儲數據
得到SharedPreference對象之后,就可以開始向SharedPreference文件中存儲數據了,主要有三步:
a.使用SharedPreference對象的edit()方法來獲取一個SharedPreference.Editor對象
b.向SharedPreference.Editor對象中添加數據,比如添加一個布爾型數據就是用putBoolean方法,添加一個字符串就是用putString()方法,以此類推
c.調用commit()方法將添加的數據提交,從而完成數據存儲操作
如:
private SharePreferences sp; //創建一個SharePreferences接口的實例對象,將生成一個XML名稱為demo_01,模式為MODE_PRIVATE sp=this.getSharedPreferences("demo_01",MODE_PRIVATE); //通過edit()方法創建一個SharePreferences.Editor類的實例對象 SharePreferences.Editor editor =sp.edit(); //通過putString()方法,將數據存入文件中 editor.putString("name","sssss"); //用commit()方法予以正式提交 editor.commit();
打開文件,可看到如下代碼:
<map> <string name="name">sssss</string> </map>
刪除數據:
editor.clear();//清除數據
查詢數據:
String name = getString("name","lisi");
1.3從SharedPreferences中讀取數據
SharedPreferences對象中提供了一系列的get方法用於讀取數據,每種get對應了一種put方法
get方法接收兩個參數,第一個是鍵,第二個參數是默認值,即當傳入的鍵找不到對應的值時,會以什么樣的默認值進行返回
可以實現設置密碼,記住密碼功能。