iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
1

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()
}

實作成果


上一篇
Day 16 咖啡風味紀錄(SQLite 搜尋)
下一篇
Day 18 FireBase資料庫-上傳資料(Cloud Firestore)
系列文
高中生Kotlin實作30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言