我正在尝试各种简单的Android Kotlin示例,在我的应用程序中保存一些持久的数据。首先,我将使用一个简单的示例,即写入一个键值对并读取它。这是我的代码,在我的活动的OnCreate()
val sharedPrefFile = "MyPrefFile"
val sharedPreferences: SharedPreferences = this.getSharedPreferences(sharedPrefFile, Context.MODE_PRIVATE)
fun setPref()
{
val editor = sharedPreferences.edit()
val myName = "Elvis"
editor.putString("nameFirst_key", myName)
}
fun getPref()
{
val myName = sharedPreferences.getString("nameFirst_key", "no_name")
}
getPref()
setPref()
getPref()
我希望第一个getPref()调用读取"no_name",它确实做到了。然而,我希望第二个getPref()调用将读取"Elvis",但它没有-它读取"no_name"。
谁能告诉我我做错了什么?
感谢加勒特
您没有在editor
上调用commit()
或apply()
,因此编辑没有生效。这在文档中有介绍。
因此,setPref()
应为:
fun setPref()
{
val editor = sharedPreferences.edit()
val myName = "Elvis"
editor.putString("nameFirst_key", myName).apply()
}