我正在使用共享首选项存储用户输入的不同语言,并在recyclerView中显示它们。当用户单击“删除”按钮时,我想从共享的首选项中删除选定的值
我编写了以下代码,但我不知道哪里出错了
pref = contexts.getSharedPreferences("user", 0);
gson = new Gson();
json = pref.getString("language" , "");
Type type = new TypeToken<List<String>>() {}.getType();
List<String> DataPackage = gson.fromJson(json, type);
String item = DataPackage.get(getAdapterPosition());
String items = pref.getString("language" , item);
editor = pref.edit();
editor.remove(items);
editor.commit();
我希望删除偏好设置中的单个项目,但是什么也没有发生,它不会删除数据
答案 0 :(得分:0)
从列表中删除项目后,使用相同的键将当前值保存在sharedPref中。这会将当前列表替换为current。
并在应用任何更改时尝试使用“应用”而不是“提交”。这将更新异步。
有关进一步信息,您可以查看以下帖子: Remove one object from Arraylist<object> saved in sharedPreferences