包含MainActivity动态数据的ListPreference

时间:2018-02-08 18:18:27

标签: java android

我尝试创建ListPreference,显示已成功连接的IP地址列表。

我在我的MainActivity中将IP地址标记为已成功连接,我希望有一种方法可以将成功的IP地址作为数组附加到SharedPreferences,以便在用户打开时PreferencesActivity,有一个ListPreference,显示我标记为成功的IP地址。

我已经查看了this帖子,但它确实非常接近,但我认为我无法将SharedPreference字符串转换为{{1}我可以吗?

到目前为止,这是我的代码:

CharSequence[]

2 个答案:

答案 0 :(得分:0)

您可以将响应传递给字符串,然后拆分成数组以获取每个IP地址。

Eg string IPS = "some IP address|some IP address......

答案 1 :(得分:0)

我用一些hacky解决方案解决了这个问题。

首先是将Set<String>转换为CharSequence[]

Set<String> stringSet = sharedPref.getStringSet("IPEntries", null);
    return stringSet.toArray(new CharSequence[stringSet.size()]);

然后在我的MainActivity中提取集合,我只使用了这段代码:

Set<String> set = sharedPref.getStringSet("IPEntries", null);
if (set == null) {
                set = new HashSet<>();
                set.add(ipAddressName);
            }
            if (!set.contains(ipAddressName)) {
                set.add(ipAddressName);
            }
            sharedPref.edit().putStringSet("IPEntries", set).apply();