第一行代码 第三版 第七章 数据存储持久化技术 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")
        }
发布了28 篇原创文章 · 获赞 11 · 访问量 2403

猜你喜欢

转载自blog.csdn.net/Y_an_Y/article/details/105718289