我尝试使用SharedPreferences清理我的Arraylist,但下面的代码不起作用:
public void btnLimparPref(View v){
SharedPreferences preferences = getSharedPreferences("listaPedidos", MODE_WORLD_WRITEABLE);
preferences.edit().clear().commit();
}
此代码是一个活动,并且Arraylist通过以下代码保存在片段中:
void criaArray(String nomeProd, String descrProd) {
HashMap<String, String> map3 = new HashMap<String, String>();
map3.put(TAG_NM, nomeProd);
map3.put(TAG_DS, descrProd);
listaPedidos.add(map3);
//getListView();
((BaseAdapter) adapter2).notifyDataSetChanged();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
Editor editor = prefs.edit();
try {
editor.putString("listaPedidos", ObjectSerializer.serialize(listaPedidos));
} catch (IOException e) {
e.printStackTrace();
}
editor.commit();
}
有什么想法吗?提前谢谢!
答案 0 :(得分:4)
您在两个代码段中使用了两个不同的SharedPreferences
对象。
首先,您正在使用:
getSharedPreferences("listaPedidos", MODE_WORLD_WRITEABLE)`
在第二个中,您正在使用:
PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext())
您对其中一个所做的更改对另一个没有影响。
此外,将来,当您在Stack Overflow上提问时,请提供完整解释“不工作”的含义。