如何将一个stringarray转换为Android中的ArrayList?

时间:2015-06-02 15:53:10

标签: android list arraylist

我在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[]

我怎么能这样做?

1 个答案:

答案 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;