从SharedPreferences中删除()或clear()无效

时间:2014-10-26 22:31:35

标签: java android android-fragments arraylist sharedpreferences

我尝试使用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();

    }   

有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:4)

您在两个代码段中使用了两个不同的SharedPreferences对象。

首先,您正在使用:

getSharedPreferences("listaPedidos", MODE_WORLD_WRITEABLE)`

在第二个中,您正在使用:

PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext())

您对其中一个所做的更改对另一个没有影响。

此外,将来,当您在Stack Overflow上提问时,请提供完整解释“不工作”的含义。