我目前正在尝试将我的Android应用中的字符串数组保存并检索到共享首选项中。问题是,我没有将任何字符串添加到我的"字符串"中,所以基本上当我尝试检索它时,它将返回null。问题是,在我得到字符串集后,我想在集合中添加一个字符串。但它显示错误,我无法将字符串添加到空对象。有人能帮我吗?感谢..
pref = getSharedPreferences("save", MODE_PRIVATE);
Set<String> setId = pref.getStringSet("id", null);
setId.add("admin");
Editor editor = pref.edit();
editor.putStringSet("id", setId);
editor.commit();
答案 0 :(得分:2)
您应该只返回Set的空实现作为默认值。例如,一个空的ArraySet应该可以正常工作:
Set<String> setId = pref.getStringSet("id", new ArraySet<>());
答案 1 :(得分:1)
SharedPreferences pref = getSharedPreferences("save", MODE_PRIVATE);
Set<String> setId = pref.getStringSet("id", null);
//The second argument 'null' means if there is no value for key "id", it will return null
if(setId == null){
setId = new HashSet<String>();
}
setId.add("admin");
SharedPreferences.Editor editor = pref.edit();
editor.putStringSet("id", setId);
editor.commit();