我在SharedPreferences中使用json保存一个列表。这很好用,但是当我尝试加载它时,Android Studio告诉我我不能
private List<AppInfo> apps;
apps = new ArrayList<AppInfo>();
// Storing in method
ArrayList<String> lollist = new ArrayList<>();
lollist = new ArrayList<>(Arrays.asList(String.valueOf(apps)));
setStringArrayPref(this, "urls", lollist);
// Loading which doesn't work
lollist = getStringArrayPref(this, "urls");
apps = (String[]) lollist.toArray();
我得到的错误是
Required: java.util.list <com.....AppInfo>
Found: java.lang.String[]
我怎么能这样做?
答案 0 :(得分:0)
您可能想要使用Gson
库。
这为您提供了更简单的一行选项,可以将数据结构转换为Json,反之亦然。
用法:
private Gson gson = new Gson();
private List<AppInfo> apps = new ArrayList<AppInfo>();
String jsonString = gson.toJson(apps); //You may store this string in your shared preference
Type type = new TypeToken<List<AppInfo>>() {}.getType();
apps = gson.fromJson(jsonString, type);
注意: 您应该在Data模型类中公开变量以使用Gson。像这样。
@Expose
private String name;