我想保存一个ArrayList到SharedPreferences,所以我需要把它变成一个字符串和回来,这是我在做什么:
- // Save to shared preferences
- SharedPreferences sharedPref = this.getPreferences(Activity.MODE_PRIVATE);
- SharedPreferences.Editor editor = this.getPreferences(Activity.MODE_PRIVATE).edit();
- editor.putString("myAppsArr",myAppsArr.toString());
- editor.commit();
我可以用String arrayString = sharedPref.getString(“yourKey”,null)检索它;但是我不知道如何将arrayString转换成ArrayList.怎么办?
我的阵列看起来像:
- [item1,item2,item3]
解决方法
你有两个选择:
>手动解析字符串并重新创建数组列表.这将是相当乏味的.
>使用像Google的Gson库这样的JSON库来存储和检索对象作为JSON字符串.这是一个轻量级的图书馆,备受好评和受欢迎.在最小的工作需要的情况下,这将是一个理想的解决方案.例如.,
- // How to store JSON string
- Gson gson = new Gson();
- // This can be any object. Does not have to be an arraylist.
- String json = gson.toJson(myAppsArr);
- // How to retrieve your Java object back from the string
- Gson gson = new Gson();
- DataObject obj = gson.fromJson(arrayString,ArrayList.class);