如何从一个键中包含多个值的共享首选项中删除单个值

时间:2019-05-22 18:19:27

标签: android

我正在使用共享首选项存储用户输入的不同语言,并在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();

我希望删除偏好设置中的单个项目,但是什么也没有发生,它不会删除数据

1 个答案:

答案 0 :(得分:0)

从列表中删除项目后,使用相同的键将当前值保存在sharedPref中。这会将当前列表替换为current。

并在应用任何更改时尝试使用“应用”而不是“提交”。这将更新异步。

有关进一步信息,您可以查看以下帖子: Remove one object from Arraylist<object> saved in sharedPreferences