7.3 SharedPreferences存儲
使用鍵值對的方式存儲,SharedPreferences支持多種不同的數據類型存儲。
7.3.1 將數據存儲到SharedPreferences中
獲取SharedPreferences對象的兩種方法:
- Context類中的getSharedPreferences()方法。
接受兩個參數:
第一個參數 :用於指定SharedPreferences文件的名稱,若不 存在則會創建一個,SharedPreferences文件都是存放在/data/data/<.package name>/shared_prefs/目錄下的
第二個參數:指定操作模式 ,目前只有默認的MODE_PRIVATE這一個模式可選,和直接傳入0的效果是相同的。 - Activity類中的getPreferences()方法:
直接接受一個參數:操作模式參數(因爲使用這個方法是會自動將當前Activity的類名作爲SharedPreferences的文件名)
得到SharedPreferences對象後:分三步向SharedPreferences文件中存儲數據。
- 調用SharedPreferences對象的edit() 方法獲取一個SharedPreferences.Editor對象。
- 向SharedPreferences.Editor對象中添加數據,使用putXX()方法。
- 調用apply() 方法將添加的數據提交,從而完成數據存儲操作。
saveButton.setOnClickListener {
val editor = getSharedPreferences("data",Context.MODE_PRIVATE).edit()
editor.putString("name","Tom")
editor.putInt("age",20)
editor.putBoolean("married",false)
editor.apply()
}
7.3.2 從SharedPreferences中讀取數據
使用getXX()方法,傳入的兩個參數分別是:第一個參數是鍵,第二參數是默認值。
restoreButton.setOnClickListener {
val prefs=getSharedPreferences("data",Context.MODE_PRIVATE)
val name=prefs.getString("name","")
val age = prefs.getInt("age",0)
val married = prefs.getBoolean("married",false)
Log.d("MainActivity","name is $name")
Log.d("MainActivity","age is $age")
Log.d("MainActivity","married is $married")
}