使用SharedPreferences存储值列表。我需要的是从SharedPreference中删除特定值.Below是我用来删除的代码。但它不起作用。
prefs= DetailActivity.this.getSharedPreferences("itemFKID",Context.MODE_PRIVATE);
edit=prefs.edit();
//edit.clear();
edit.remove(itemFkId);
edit.commit();
下面是即使在edit.remove()编译后仍包含值的屏幕截图。
这里是将值插入SharedPreferences
prefs= DetailActivity.this.getSharedPreferences("itemFKID",Context.MODE_PRIVATE);
edit=prefs.edit();
for (int i = 0; i < Config.favouritesList.size(); i++) {
edit.putString("itemFKIDValue" +i, Config.favouritesList.get(i));
}
edit.putInt("itemFKIDLength", Config.favouritesList.size());
edit.commit();
答案 0 :(得分:1)
SharedPreferences.Editor
的文档有两位与您的问题相关:
您在编辑器中所做的所有更改都是批处理的,在您调用commit()或apply()
之前不会将其复制回原始的SharedPreferences
和
当提交回首选项时,无论您是否在此编辑器上的put方法之前或之后调用remove,都会先执行所有删除操作
因此,在看到删除的值之前,您必须跳过commit()
调用。
答案 1 :(得分:1)