使用SharedPreference永久保存数据如何将数据添加到ArrayList

时间:2011-03-31 01:40:31

标签: android listview sharedpreferences

我正在使用SharedPreference来保存从活动(A)中在ListView中选择的数据(字符串),每次只选择一个,并由SharedPreference保存,计划是读取并显示此数据(和listView中活动(B)中所有过去选择的旧版本。

如何在每次选择的时候保存和添加并保留所有旧版本以保存像ArrayList一样,每次将新内容添加到已选择的所有历史记录的ListView中?

2 个答案:

答案 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文件。