我有一个arrayList,我想用一些值填充它。 问题是这个数组列表最后只得到数组的最后一个值。我做错了什么?
答案 0 :(得分:0)
您没有添加到arraylist
更改
RESTEndpoints = new Gson().fromJson(sp.getString(entry.getKey(), "[]"), type);
要
RESTEndpoints
.add(new Gson().fromJson(sp.getString(entry.getKey(), "[]"), type));
答案 1 :(得分:0)
问题是因为你在foreach和每次RESTEndpoints都收到一个新值时都这样做,所以在这种情况下,RESTEndpoints总是得到最后一个值。
您必须更改为以下代码:
for(Map.Entry<String,?> entry : keys.entrySet()){
RESTEndpoints.addAll((ArrayList<RESTEndpoint>) new Gson().fromJson(sp.getString(entry.getKey(), "[]"), type));
}
答案 2 :(得分:0)
您没有在列表中添加数组值,请按以下说明更改代码:
for(Map.Entry<String,?> entry : keys.entrySet()){
RESTEndpoints.addAll(new Gson().fromJson(sp.getString(entry.getKey(), "[]"), type));
}