SharedPreferences是一個可以把數值儲存在手機裡的類別,以Key-Value的方式儲存,也就是一個名字對應一個值,可以想成是關掉程式後不會消失的變數
雖然可以方便的儲存和修改數值,但因為每個值都要有一個名字,所以不適合用在需要增加項目的時候
所以SharedPreferences常用在儲存項目較固定的時候
例如上一次的工作狀態、應用程式的設定值、使用者資料等,這邊接續Day 06,讓SeekBar的數值不會重置
在onCreat中取得SharedPreferences物件
//第一個參數是SharedPreferences的名字
//第二個參數是讀取權限 這邊代表只有這個APP可以讀取
var sharedPreferences = getSharedPreferences("color", Activity.MODE_PRIVATE)
利用.getInt()
、.getString()
等方法讀取不同型別的數值
seekBar_a.progress = sharedPreferences.getInt("a",255)
seekBar_r.progress = sharedPreferences.getInt("r",0)
seekBar_g.progress = sharedPreferences.getInt("g",0)
seekBar_b.progress = sharedPreferences.getInt("b",0)
有兩個參數,第一個參數是值的名字,當第一次啟動APP或是沒有這筆資料時,會先回傳第二個參數
利用.edit()
取得可修改的SharedPerformance物件,利用.putInt()
加入四個整數,最後使用.commit()
儲存資料
//當APP要結束時執行
override fun onDestroy() {
super.onDestroy()
var sharedPreferences = getSharedPreferences("color", Activity.MODE_PRIVATE).edit()
//寫入三個數值
sharedPreferences.putInt("a",seekBar_a.progress)
sharedPreferences.putInt("r",seekBar_r.progress)
sharedPreferences.putInt("g",seekBar_g.progress)
sharedPreferences.putInt("b",seekBar_b.progress)
//儲存資料
sharedPreferences.commit()
}