android - 将字符串数组列表保存到共享首选项

标签 android arraylist sharedpreferences

在 API 级别 8 中,将字符串的 ArrayList 保存到 SharedPreferences 的最佳方法是什么?我现在能想到的唯一方法是将所有字符串保存到一个用逗号分隔的字符串中,然后以这种方式保存。但是我不知道字符串是否有最大大小。

有更好的方法吗?

最佳答案

如果你能保证 ArrayList 中的 String 不包含逗号,你可以简单地使用

List<String> list = new ArrayList<String>();
...
editor.putString(PREF_KEY_STRINGS, TextUtils.join(",", list));

并阅读列表

String serialized = prefs.getString(PREF_KEY_STRINGS, null);
List<String> list = Arrays.asList(TextUtils.split(serialized, ","));

您受到设备内存的限制。使用后台线程读取/写入共享首选项是一种很好的做法。

关于android - 将字符串数组列表保存到共享首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150597/

相关文章:

java - java中列表列表中的组列表元素

java - 如何按数组中字符串的长度对 ArrayList 进行排序

java - 如何在android本地数据库中存储intent?

java - 我的项目使用 SharedPreferences 保存 ArrayList<T> 时出现问题

java - 如何解决 "operator * cannot be applied to java.lang.string"?

android - 用作 LaunchedEffect 键时出现 NetworkOnMainThreadException

android - Jetpack Compose Prop 输入

c# - 更改布局大小取决于屏幕大小

c# - ArrayList 计数与任何

java - 将 ArrayList 转换为字符串以存储在共享首选项中