关于sharedPreferences(Kotlin)的问题

k2fxgqgv  于 2022-12-13  发布在  Kotlin
关注(0)|答案(1)|浏览(135)

我正在试验Kotlin的sharedPreferences,但是我似乎不能让更新的值保持不变。

val sharedPreferences = getSharedPreferences("Files", Context.MODE_PRIVATE)
    val editor = sharedPreferences.edit()
    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()
    }

在上面的代码中,我将sharedPreference的初始值设置为1,当点击button时,该值将更新为2并显示出来。这样做很好,但是当关闭应用程序并重新打开它时,该值将恢复为1。有没有办法永久保存更新后的值?

s5a0g9ez

s5a0g9ez1#

每次打开Activity时都要将其设置为该值,因为每次打开Activity时都会调用onCreate()。您应该检查是否已经设置了该值,如果已经设置,则跳过该行代码。

if ("numbers" !in sharedPreferences) {
    val editor = sharedPreferences.edit()
    editor.putInt("numbers",1).apply()
}

顺便说一下,这里有一个编辑的扩展函数,不需要重复调用apply和editor.

if ("numbers" !in sharedPreferences) {
    sharedPreferences.edit {
        putInt("numbers",1)
    }
}

相关问题