我想保存一个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);