【发布时间】:2021-07-16 16:47:59
【问题描述】:
当我尝试将 stringSet 中的第一个字符串保存到它正常保存的 sharedPreferences 中时,但在尝试将另一个字符串保存在 stringSet 中之后,它显示为好像已保存但重新启动应用程序并检索数据时,它只显示保存的第一个字符串,当我再次尝试单击相同的功能按钮时,它不会保存到 sharedPreferecnes,但单击另一个具有相同功能的按钮将保存我觉得奇怪的前一个。这是我的代码
button.setOnClickListener {
val orderPrefs = getSharedPreferences("order", Context.MODE_PRIVATE)
val editor = orderPrefs.edit()
var test = orderPrefs.getStringSet("recentlyViewedRestaurant", null)
if (test == null) {
test = HashSet<String>(0)
}
test.add(restaurantName)
//Log.d("LastPicked", test.toString())
editor.putStringSet("recentlyViewedRestaurant", test)
editor.apply()
val testing = getSharedPreferences("order", Context.MODE_PRIVATE)
//it will retrieve and show the expected result but leaving the page
//and retrieving from another activity won't show the last added string
Log.d(
"lastPicked",
testing.getStringSet("recentlyViewedRestaurant", null).toString()
)
}
【问题讨论】:
-
您不应该修改字符串集,而是修改它的副本。 stackoverflow.com/questions/14034803/…
-
@laalto 我正在阅读它,感谢您的快速回复
-
@laalto 成功了,非常感谢
标签: android-studio kotlin sharedpreferences