//准备要添加的数据条目
List<Map<String, Object>> items = new ArrayList<Map<String,Object>>();
{
item = new HashMap<String, Object>();//每次都要new一个HashMap!
item.put("textItem", "节点"+ (i+1) +" \n\n" + cursor.getString(5 + 3*i) + " °C \n" + cursor.getString(6 + 3*i).substring(0, 5)+" % ");
items.add(item);
}
//实例化一个适配器
SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.grid_item, new String[]{"textItem"}, new int[]{R.id.text_item});
//将GridView和数据适配器关联
List<Map<String, Object>> items = new ArrayList<Map<String,Object>>();
Map<String, Object> item;
{
item = new HashMap<String, Object>();//每次都要new一个HashMap!
item.put("textItem", "节点"+ (i+1) +" \n\n" + cursor.getString(5 + 3*i) + " °C \n" + cursor.getString(6 + 3*i).substring(0, 5)+" % ");
items.add(item);
}
//实例化一个适配器
SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.grid_item, new String[]{"textItem"}, new int[]{R.id.text_item});
//将GridView和数据适配器关联
mygridview.setAdapter(adapter);
//修改
item = new HashMap<String, Object>();
item.put("textItem", "aaa");
items.set(3, item);
一个item对象是一个HashMap的引用, 而HashMap是一个映射序号(到某个内存区域?没搞明白呢)。如果每次不new一个HashMap,那么不管item改变多少次,其实每次item修改的区域都是同一个空间,加入到Arraylist里面的都是同一个HashMap,那么最后arraylist里每一个元素的内容都是最后添加的那个值。