最近在做一个android项目,中间遇到一点小问题,问题代码如下:
private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
for (int i = 0; i < f.size(); i++) {
File file = f.get(i);
filename = file.getName();
map.put("img", R.drawable.img);
map.put("name", filename);
list.add(map);
}
return list;
}
这段代码输出的结果是最后一个list的值,而不是全部list的值。折腾了一会才发现是map创建的位置写错了,应该放在for循环里面。最终正确的代码为:
private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < f.size(); i++) {
Map<String, Object> map = new HashMap<String, Object>();
File file = f.get(i);
filename = file.getName();
map.put("img", R.drawable.img);
map.put("name", filename);
list.add(map);
}
return list;
}