使用SharedPreferences保存包含重复值的ArrayList

时间:2016-09-30 15:41:05

标签: java android

我有一个包含Some Dates的ArrayList。 我想将它保存到用户的存储空间以便以后使用。 这是我试过的代码:

ArrayList<String> dates = new ArrayList<>();
dates.add("1 شهریور 1395");
dates.add("1 شهریور 1395");
dates.add("2 شهریور 1395");
dates.add("2 شهریور 1395");
SharedPreferences preferences;
SharedPreferences.Editor editor;
preferences = getPreferences(Context.MODE_PRIVATE);
editor = preferences.edit();
Set<String> dateSet = new Set(dates);
editor.putStringSet(dateSet);

但是当我打电话给dateSet.size()时,它正常返回2 ...而不是4 如何在不减小尺寸的情况下保存dates

2 个答案:

答案 0 :(得分:1)

使用putString()

  

在首选项编辑器中设置一个字符串值,一旦调用commit()或apply(),就会被写回。

https://developer.android.com/reference/android/content/SharedPreferences.Editor.html

答案 1 :(得分:0)

请勿使用public class Sample { public string Name { get; set; } public decimal Total { get; set; } } 。以某种格式(例如JSON或csv)序列化数组,而是执行var result = context.Database.SqlQuery<List<Sample>>(...);

https://stackoverflow.com/a/8287418/6865211