我正在使用SharedPreference来保存从活动(A)中在ListView中选择的数据(字符串),每次只选择一个,并由SharedPreference保存,计划是读取并显示此数据(和listView中活动(B)中所有过去选择的旧版本。
如何在每次选择的时候保存和添加并保留所有旧版本以保存像ArrayList一样,每次将新内容添加到已选择的所有历史记录的ListView中?
答案 0 :(得分:1)
您应该考虑使用SQLite数据库而不是SharedPreferences。
答案 1 :(得分:0)
如果你真的想使用SharedReference,你必须创建2个方法来转换和转换你的数据(从\ String),例如:
static final String UNIQUE_SPLIT_VALUE = "<|>";
String arrayListToString(List<String> list) {
StringBuilder result = new StringBuilder();
for (String value : list) {
result.append(value);
result.append(UNIQUE_SPLIT_VALUE);
}
return result.toString();
}
List<String> stringToArrayList(String prefString) {
return Arrays.asList(prefString.split(UNIQUE_SPLIT_VALUE));
}
...
saveToPreferences(arrayListToString(myDataList));
myDataList = stringToArrayList(getDataFromPreferences());
另一种可以获得相同结果的方法 - 将数据序列化\反序列化为\ from文件。