1. 簡介
汝城網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。SharedPreferences是一種輕型的數(shù)據(jù)存儲方式,通過key-value鍵值對的方式將數(shù)據(jù)存儲在xml文件中,常用于存儲簡單的配置信息。
2. 使用方式
2.1 獲取SharedPreferences對象
Android中可通過以下三種方式獲取SharedPreferences對象:
2.2.1 Context類中的getSharedPreferences()
接收兩個參數(shù),第一個參數(shù)指定存儲數(shù)據(jù)的文件,若指定文件不存在,則新建該文件,存放目錄為"/data/data/package_name/shared_prefs/",其中package_name為包名。
第二個參數(shù)則為操作模式,主要有兩種:
MODE_PRIVATE
:私有模式,默認情況下的模式,與直接傳入0作為參數(shù)效果一樣,表示只有當(dāng)前程序可對這個文件進行操作。
MODE_MULTI_PROCESS
:多進程模式,允許多個進程對該文件進行操作。
2.2.2 Activity類中的getPreferences()
這個方法與上一個方法比較相似,不同之處在于它只接收一個參數(shù),用于指定操作模式,而無需指定文件名,這個方法默認將當(dāng)前Activity的類名作為存儲數(shù)據(jù)的文件名。
2.2.3 PreferenceManager類中的getDefaultSharedPreferences()
這是一個靜態(tài)方法,接收一個Context參數(shù),使用當(dāng)前應(yīng)用程序的包名作為存儲數(shù)據(jù)的文件名。
2.2 獲取SharedPreferences.Editor對象
SharedPreferences對象本身是只可以讀取而不能保存數(shù)據(jù)的,需要保存數(shù)據(jù)則要調(diào)用SharedPreferences對象的edit()方法獲取一個Editor對象。
2.3 通過putXxx方法存儲數(shù)據(jù)
得到Editor對象后,則可調(diào)用它的putXxx方法添加數(shù)據(jù),這里的Xxx指的是添加的數(shù)據(jù)類型,例如存儲字符串?dāng)?shù)據(jù)則調(diào)用putString()方法。這個方法接收兩個參數(shù),第一個參數(shù)為key值,第二個參數(shù)為數(shù)據(jù)的值,即一個鍵值對。
2.4 提交變化
添加或移除(remove方法)數(shù)據(jù)后,需要調(diào)用Editor對象的commit()方法將所作變化提交。
2.5 獲取存儲的數(shù)據(jù)
獲取已經(jīng)存儲的數(shù)據(jù)較為簡單,直接調(diào)用SharedPreferences對象的getXxx方法即可,使用方法與Editor對象的putXxx類似。這個方法也是接收兩個參數(shù),第一個參數(shù)指定要獲取的數(shù)據(jù)的key值,第二個參數(shù)指定當(dāng)獲取的數(shù)據(jù)不存在時所返回的默認值。
3. 范例-實現(xiàn)保存用戶名的功能
布局:
<?xml version="1.0" encoding="utf-8"?>