android将值添加到从null设置的sharedpreference字符串中

时间:2015-11-04 15:20:38

标签: android arrays string set sharedpreferences

我目前正在尝试将我的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();

2 个答案:

答案 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();