首页 > 解决方案 > 如何在 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();

标签: androidsharedpreferenceshashset

解决方案


您可以进行转换并将其存储在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

推荐阅读