我尝试创建ListPreference
,显示已成功连接的IP地址列表。
我在我的MainActivity
中将IP地址标记为已成功连接,我希望有一种方法可以将成功的IP地址作为数组附加到SharedPreferences
,以便在用户打开时PreferencesActivity
,有一个ListPreference
,显示我标记为成功的IP地址。
我已经查看了this帖子,但它确实非常接近,但我认为我无法将SharedPreference
字符串转换为{{1}我可以吗?
到目前为止,这是我的代码:
CharSequence[]
答案 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();