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