我有多个值的ArrayList。我想将此ArrayList转换为String以保存在sharedPreferences中,然后我想检索String并将其转换回ArrayList
请告诉我该怎么做? (或任何其他存储和检索ArrayList的想法)
答案 0 :(得分:3)
您可以使用Google的GSON。
Gson是一个Java库,可用于将Java对象转换为 他们的JSON表示。它也可以用于转换JSON 字符串到等效的Java对象。 Gson可以使用任意Java 对象包括您没有的预先存在的对象 。的源代码。
http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/Gson.html
https://code.google.com/p/google-gson/
你明白了这个想法:
- 存储:将对象转换为JSON字符串 - >保存字符串
- 检索:获取字符串 - >从JSON转换为Object
答案 1 :(得分:2)
将arraylist转换为字符串:
String str = "";
for (String s : arraylist)
{
str += s + ",";
}
将字符串保存到共享首选项中:
PreferenceManager.getDefaultSharedPreferences(context).edit().putString("mystr", str).commit();
从sharedpreference获取字符串:
String str = PreferenceManager.getDefaultSharedPreferences(context).getString("mystr", "defaultStringIfNothingFound");
将字符串转换为arraylist:
List<String> arraylist = new ArrayList<String>(Arrays.asList(str.split(",")));