2011-03-31 105 views
0

我正在使用SharedPreference來保存從活動(A)在ListView中選擇的數據(字符串),每次只選擇一個,並保存通過SharedPreference,計劃是讀取並顯示在ListView中的活動(B)中的這些數據(以及過去選擇的所有較舊的數據)。使用SharedPreference永久保存數據我如何將數據添加到ArrayList

我怎樣才能保存和添加每一次被選中,並保持所有的老年人保存像ArrayList,添加每一個新的ListView所有歷史被選擇?

回答

1

您應該考慮使用SQLite數據庫而不是SharedPreferences。

0

如果你真的想使用SharedReference你必須創建2種方法(從字符串到\)您的數據轉換與解轉換,如:

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()); 

另一種方式你可以達到相同的結果 - 序列化\反序列化您的數據\從文件。