數據存儲SharePreferences詳解


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方法接收兩個參數,第一個是鍵,第二個參數是默認值,即當傳入的鍵找不到對應的值時,會以什么樣的默認值進行返回

 

可以實現設置密碼,記住密碼功能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM