SharedPreferences 是使用鍵值對的方式來存儲數(shù)據(jù)的,使用xml格式對數(shù)據(jù)進(jìn)行管理
獲取SharedPreferences對象的3種方法:
Context 類中的getSharedPreferences()方法
1.此方法接收兩個參數(shù),第一個參數(shù)用于指定SharedPreferences 文件的名稱,如果指定的文件不存在則會創(chuàng)建一個,SharedPreferences 文件都是存放在/data/data/<package name>/shared_prefs/目錄下的.
2.第二個參數(shù)用于指定操作模式,目前只有MODE_PRIVATE這一種模式可選,它是默認(rèn)的操作模式,和直接傳入0效果是相同的,表示只有當(dāng)前應(yīng)用程序才可以對這個SharedPreferences文件進(jìn)行續(xù)寫.Activity類中g(shù)etPreferences()方法
1.這個方法和Context中的getSharedPreferences()方法很類似,不過它只接收一個操作模式參數(shù),因為使用這個方法時會自動將當(dāng)前活動的類名作為SharedPreferences的文件名.PreferenceManager類中的getDefaultSharedPreferences()方法
這是一個靜態(tài)方法,它接收一個Context參數(shù),并自動使用當(dāng)前應(yīng)用程序的包名作為前綴來命名SharedPreferences文件.
拿到對象后開始存儲數(shù)據(jù),分3步實現(xiàn)
- 1.調(diào)用SharedPreferences對象的edit()方法來獲取一個SharedPreferences.Editor對象
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit();
- 2.向editor對象中添加數(shù)據(jù)
布爾型數(shù)據(jù) putBoolean()
字符串?dāng)?shù)據(jù) putString() 等...
editor.putString("name","Tom");
editor.putInt("age",28);
- 3.調(diào)用apply()方法將添加的數(shù)據(jù)提交,從而完成數(shù)據(jù)存儲操作
editor.apply();
從SharedPreferences中讀取數(shù)據(jù)
- 1.獲取 SharedPreferences 對象
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
- 2.調(diào)用get方法,每種get方法都對應(yīng)了SharedPreferences.Editor 中的一種put方法,讀取一個布爾型數(shù)據(jù)則用 getBoolean()方法.這些get方法都接收兩個參數(shù),第一個參數(shù)是鍵,第二個參數(shù)是默認(rèn)值,即當(dāng)傳入的鍵找不到對應(yīng)的值時,返回這個歌默認(rèn)值
String name = prefs.getString("name","");
int age = prefs.getInt("age",0);
其中name = Tom
age = 28