https://blog.youkuaiyun.com/x635981012/article/details/50373173
该文章解决了我的主要问题,现在自己写一下来防止404并帮助 记忆
以下是正确的代码,存储部分日程管理在本地。
public void deleteSchedule(String date,String item){
SharedPreferences.Editor editor = sharedPreferences.edit();
Set<String> a=new HashSet<>(sharedPreferences.getStringSet(date,new HashSet<String>()));
a.remove(item);
editor.putStringSet(date, a);
editor.commit();
}
public void setSchedule(String date,String schedule){
SharedPreferences.Editor editor = sharedPreferences.edit();
try {
Set<String> set = new HashSet<>(sharedPreferences.getStringSet(date,new HashSet<String>()));
set.add(schedule);
editor.putStringSet(date, set);
}catch (NullPointerException e){
Set<String> set = new HashSet<>();
set.add(schedule);
editor.putStringSet(date, set);
}
editor.commit();
}
原代码是
Set<String> set = sharedPreferences.getStringSet(date,new HashSet<String>());
Set必须要重新new 一个,,,太坑爹了 ,SharedPreferences 这个类的原因,他会创立一个对象,当然这个set也是其中一个元素,当我们新建一个set的时候对新建的set的操作并不能影响到SharedPreferences 的对象的set