我有以下简单的代码。它获取文本框的值,保存它并检索。检索到的值与保存的值不同。
打印输出:值:qwert asdf
会有什么问题呢?
val sharedPref = getSharedPreferences("Data", Context.MODE_PRIVATE)
sharedPref.edit().putString("Str",binding.text.editText?.text.toString())
print("Value: ")
println(binding.text.editText?.text.toString())
sharedPref.edit().commit()
println(sharedPref.getString("Str","asdf"))
谢谢你事先的提示
2条答案
按热度按时间whhtz7ly1#
SharedPreferences#edit
为您提供了一个SharedPreferences.Editor
类的示例,您将在该示例上调用putString
方法,但不提交任何更改。您的第二个
sharedPref.edit().commit()
只获得了一个没有任何版本的SharedPreferences.Editor
的新示例,并且调用了commit
,没有任何更改。请尝试以下操作
一种更惯用的方法是使用kotlin stdlib中的
apply
函数:xzlaal3s2#
"你也可以这样尝试"
如需了解更多信息,请参阅官方android文档