【发布时间】:2020-11-05 12:02:36
【问题描述】:
我正在使用以下代码将ArrayList<String> 保存到SharedPreferences:
StringBuilder stringBuilder = new StringBuilder();
for(String str: semesterArray) {
stringBuilder.append(str);
stringBuilder.append(",");
}
SharedPreferences sharedPreferences = getSharedPreferences("PREFERENCES", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("semesterArray", stringBuilder.toString());
editor.apply();
这在某种程度上完成了工作,因为它按预期保存了ArrayList<String>,并且当重新启动应用程序时,添加的Semesters 仍按我希望的方式存储在ArrayList<String> 中。但是如果我在重新启动应用程序后添加更多Semesters,则保存的Semesters 将被覆盖,并且我会丢失之前保存的Semesters。有没有办法SharedPreferences 可以更新而不是覆盖?如果不是,我应该向哪个方向存储这些Semesters?感谢您的帮助!
【问题讨论】:
-
在您的情况下,您需要使用 sqlite 或其他数据库..
-
我可以知道我需要这样做的原因吗?
-
我猜 sharedpreference 不会保留旧条目,它会用新数据更新它们,我猜 sharedpreferences 仅用于简单存储数据,因为您可能会考虑使用 sqlite db 或 room db 在存储数据方面也很有效
-
@JaimeMiranda 因为根据设计 sharedpreference 会覆盖数据
-
不知道。如您所见,我是 Android 开发的新手,我真的很努力保存数据。谢谢!
标签: java android arraylist sharedpreferences