不同于文件的直接读写字符串的方式,SharedPreferences使用键值对存储数据。
SharedPreferences
对象想使用SharedPreferences
存储数据,首先要获取SharedPreferences
对象。有如下两种方式。
getSharedPreferences()
方法getSharedPreferences()
方法SharedPreferences
中存储数据SharedPreferences
对象的edit()方法得到一个SharedPreferences.Editor
对象。 editor.putString()
editor.putInt()
editor.putBoolean()
apply()
方法。SharedPreferences
中提取数据SharedPreferences
对象。 editor.getString()
editor.getInt()
editor.getBoolean()
该程序实现了使用SharedPreferences
进行数据存储和提取。
MainActivity.kt
package com.example.sharedpreferences
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn_saveData.setOnClickListener{
val editor = getSharedPreferences("data", Context.MODE_PRIVATE).edit()
editor.putString("name", "ZQ")
editor.putInt("age",22)
editor.putBoolean("isMarried", false)
editor.apply()
Toast.makeText(this, "数据保存成功", Toast.LENGTH_SHORT).show()
}
btn_restoreData.setOnClickListener{
val prefs = getSharedPreferences("data", Context.MODE_PRIVATE)
val name = prefs.getString("name", "")
val age = prefs.getInt("age", 0)
val isMarried = prefs.getBoolean("isMarried", false)
val tag = "MainActivity"
Log.d(tag, "name = $name")
Log.d(tag, "age = $age")
Log.d(tag, "married = $isMarried")
Toast.makeText(this, "成功打印日志", Toast.LENGTH_SHORT).show()
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btn_saveData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SAVEDATA"/>
<Button
android:id="@+id/btn_restoreData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RESTOREDATA"/>
</LinearLayout>
程序截图
使用Android studio自带的工具Device File Explorer查看对应目录下的data文件,发现实际上是一个xml,具体内容如下
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="isMarried" value="false" />
<string name="name">ZQ</string>
<int name="age" value="22" />
</map>
本文地址:https://blog.csdn.net/weixin_42708161/article/details/107575029
如对本文有疑问, 点击进行留言回复!!
android -- ndk (stack corruption detected)
Android Span富文本图文混排 - ImageSpan(图文垂直居中)
Element DateTimePicker日期时间选择器的使用示例
【Appium踩坑】小米手机,启动报错:exited with code 255 writing to settings requires:android.permission.WRITE_SECUR
android 拍照 预览图与 照片分辨率(可视区域)不一致
[PAT顶级]1025 Keep at Most 100 Characters (35分)
网友评论