You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中SharedPreferences更新值无法持久化,重启后恢复初始值求助

解决SharedPreferences值无法持久保存的问题

你的问题出在每次启动应用都会强制将numbers的值设为1,不管之前有没有更新过。代码里的editor.putInt("numbers",1).apply()是在Activity初始化阶段执行的,每次打开应用都会执行这行代码,覆盖掉之前保存的2,所以重启后值会回到1。

修正方案

只在numbers这个key不存在的时候才设置初始值1,否则直接读取已保存的值:

val sharedPreferences = getSharedPreferences("Files", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()

// 仅当key不存在时设置初始值
if (!sharedPreferences.contains("numbers")) {
    editor.putInt("numbers", 1).apply()
}

val textview = findViewById<TextView>(R.id.textview)
textview.text = sharedPreferences.getInt("numbers", 0).toString()
val button = findViewById<Button>(R.id.button)

button.setOnClickListener {
    editor.putInt("numbers", 2).apply()
    textview.text = sharedPreferences.getInt("numbers", 0).toString()
}

关键说明

  • 使用sharedPreferences.contains("numbers")判断该键是否已存在,避免每次启动都覆盖原有值
  • 初始值设置逻辑只执行一次,后续启动会直接读取之前保存的数值,这样更新后的值就能持久保存了

内容的提问来源于stack exchange,提问作者Theprogrammingnoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 19:50:21