第一行代碼 第三版 第七章 數據存儲持久化技術 7.3SharedPreferences存儲

7.3 SharedPreferences存儲

使用鍵值對的方式存儲,SharedPreferences支持多種不同的數據類型存儲。

7.3.1 將數據存儲到SharedPreferences中

獲取SharedPreferences對象的兩種方法:

  1. Context類中的getSharedPreferences()方法。
    接受兩個參數:
    第一個參數 :用於指定
    SharedPreferences
    文件的名稱,若不 存在則會創建一個,SharedPreferences文件都是存放在/data/data/<.package name>/shared_prefs/目錄下的
    第二個參數:指定操作模式 ,目前只有默認的MODE_PRIVATE這一個模式可選,和直接傳入0的效果是相同的。
  2. Activity類中的getPreferences()方法:
    直接接受一個參數:操作模式參數(因爲使用這個方法是會自動將當前Activity的類名作爲SharedPreferences的文件名)

得到SharedPreferences對象後:分三步向SharedPreferences文件中存儲數據。

  1. 調用SharedPreferences對象的edit() 方法獲取一個SharedPreferences.Editor對象。
  2. SharedPreferences.Editor對象中添加數據,使用putXX()方法。
  3. 調用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")
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章