保存ArrayList <string>以保持不变

时间:2018-02-15 06:24:27

标签: java android string save

我的应用程序允许用户从设备中的各种应用程序列表中进行选择,如果用户选择一个或多个选项,则将其保存在ArrayList中的每个选项作为应用程序的名称,例如:

ArrayList<String> appSelected = new ArrayList<>();
appSelected.add("name_of_the_app");

然后该数组用于其他目的。

我的问题是:它可以保存阵列吗?用户在应用程序启动时不需要再次重新选择应用程序,如用户首选项。

1 个答案:

答案 0 :(得分:0)

您可以将ArrayList<String>保存在SharedPreference中。您无法直接在ArrayList中存储SharedPreference。由于您的列表仅包含StringStringSerializable,因此您可以使用某个联接分隔符将列表项转换为String。然后以字符串形式保存到SharedPreference

要检索它,请从SharedPreference获取字符串并使用分隔符将其拆分。

此解决方案仅适用于String没有逗号(,)

的情况
//String joinStr = StringUtils.join(stringList, ",");
String joinStr = TextUtils.join(",", stringList);
editor.putString(PREF_KEY_LIST_STRINGS, joinStr).commit();

并检索

String restoredStr= prefs.getString(PREF_KEY_LIST_STRINGS, null);
List<String> restoredList = null
if(restoredStr!= null){
  restoredList = Arrays.asList(restoredStr.split(","));
}  

这仅适用于字符串类型ArrayList

SharedPreference主要用于简单数据。如果您正在处理大量数据,请考虑使用Sqlite