android - 如何在 SharedPreference 中存储整数哈希集?
问题描述
它说错误的第二个参数类型需要设置字符串。
Set<Integer> hs = pref.getStringSet("set", new HashSet<Integer>());
hs.add(String.valueOf(hs.size()+1));
SharedPreferences.Editor edit = pref.edit();
edit.putStringSet("set", hs);
edit.commit();
解决方案
您可以进行转换并将其存储在SharedPreferences
这样的地方,
SharedPreferences preferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE);
Set<Integer> integerHashSet = new HashSet<>();
integerHashSet.add(1);
integerHashSet.add(2);
//convert String HashSet to Integer HashSet
Set<String> stringHashSet = new HashSet<>();
for (Integer i : integerHashSet) {
stringHashSet.add(String.valueOf(i));
}
preferences.edit().putStringSet("set", stringHashSet).commit();
Set<String> stringSet = preferences.getStringSet("set", new HashSet<String>());
Set<Integer> integerSet = new HashSet<>();
//Convert it back
for (String str : stringSet) {
integerSet.add(Integer.parseInt(str));
}
//now user integerSet
推荐阅读
- postgresql - 与postgres服务器建立连接,但拒绝从数据库“student”的表“students”中获取数据
- wpf - GridView 标题单元格之间的选项卡不起作用
- java - 如何在外部应用程序 android 中打开存储在应用程序特定存储中的文件?
- notifications - 我正在尝试发出通知以打开和关闭音乐播放器,但它不起作用
- amazon-web-services - Aws Lambda Postman 错误:“消息”:“内部服务器错误”
- javascript - 在浏览器和电子平台上,绘画作品,但在android平台上试图在画布上绘画却不行,这是为什么呢?
- javascript - 无法在 Reactjs 中显示从后端获取的图像
- java - 安装驱动后也无法解决java.sql.SQLException
- google-apps-script - 如何从 Binance API 获取 Binance 的 BTC 价格
- java - 使用 RestHighLevelClient 执行弹性搜索查询的最佳方法是什么