修改ArrayList

来源:互联网 发布:php 修改文件名 编辑:程序博客网 时间:2024/06/07 04:04
//准备要添加的数据条目
        List<Map<String, Object>> items = new ArrayList<Map<String,Object>>();

        Map<String, Object> item;


        for (int i = 0; i < 10; i++)
        {
        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里每一个元素的内容都是最后添加的那个值。

0 0
原创粉丝点击