通过SharePreferences将数据持久化;实现将应用进程清理后再开启时,自动恢复输入数据
class MainActivity : AppCompatActivity() {
private lateinit var inputText: EditText
private lateinit var sp: SharedPreferences
private lateinit var editor: Editor
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
//以上主函数代码为Android Studio自动生成
val greetingText = findViewById<TextView>(R.id.printer)
inputText = findViewById<EditText>(R.id.inputer)
val submitButton = findViewById<Button>(R.id.btn)
sp = getSharedPreferences("my_sp", MODE_PRIVATE)
editor = sp.edit()
submitButton.setOnClickListener {
val message = inputText.text.toString() //获取输入内容
if (message == "") { //当输入内容为空
//Toast为系统提示,第一个参数为Context(Activity亦为一种Context),第二个参数为提示文本,第三个参数为显示时长
Toast.makeText(
this,
"You haven't entered anything!",
Toast.LENGTH_SHORT
).show()
} else {
greetingText.text = "Welcomed! " + message
//inputText.text.clear()
val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("USER", message) //向下一个Activity传递值
startActivity(intent)
}
}
}
//重写onPause函数,实现自动利用SharedPerences保存数据
override fun onPause() {
super.onPause()
val message = inputText.text.toString()
editor.apply {
putString("sp_message", message)
commit()
}
}
//重写onPause函数,实现自动利用SharedPerences恢复数据
override fun onResume() {
super.onResume()
val message = sp.getString("sp_message", null)
inputText.setText(message)
}
}
597

被折叠的 条评论
为什么被折叠?



