【发布时间】:2016-02-01 21:36:57
【问题描述】:
我正在尝试检索 SharedPreferences 上的数据。 它被映射为key(电影名称),value(HashSet,包含与电影相关的所有信息),如下所示:
SharedPreferences.Editor preferencesEditor = preferences.edit();
preferencesEditor.putStringSet(movieInfo[1], new HashSet<String>(Arrays.asList(movieInfo)));
preferencesEditor.commit();
我想获取该 HashSet 以便能够使用这些信息。
我能够做到这一点:
SharedPreferences preferences = getContext().getSharedPreferences("favorites_list", Context.MODE_PRIVATE);
Map<String, String> map = (Map<String, String>) preferences.getAll();
String a = null;
for (Map.Entry<String, String> entry : map.entrySet()){
a = entry.getValue();
}
问题是getValue()返回的是字符串所以要设置成字符串,但是值本身是HashSet,所以返回一个ClassCastException错误,HashSet不能强制转换为String。有什么想法吗?
【问题讨论】:
标签: dictionary sharedpreferences hashset