打印2种方法中mylist .size()和mylist 中的元素看有什么不同?

解决方案 »

  1.   


    mylist.addAll(getTheList());
    重点在这里 我感觉!
      

  2.   

    第一个不工作正常,只是改变mylist的引用对象。SimpleAdapter mySimple = new SimpleAdapter(this, Entity.mylist, R.layout.listview, from, to);
    第一种方法更新数据:
    mylist = getTheList();       改变对象,mySimple内存储的还是new SimpleAdapter时传入的对象
    mySimple.notifyDataSetChanged();第二种方法更新数据:
    mylist.clear();
    mylist.addAll(getTheList()); 改变的是内容
    mySimple.notifyDataSetChanged();
      

  3.   

    4楼说的不错啊
    mylist = getTheList(); 只改变了对象的引用,mylist 还是指向原来在堆栈中内存地址
    mylist.addAll(getTheList());彻底改变了mylist原来在堆栈中内存地址,指向了新的内存地址
      

  4.   

    汗。。话说lss 有做过实验吗。。我刚刚试了
    事实上改变引用 调用notifyDataSetChanged()完全可以的刷新话说回来lz这段代码是 盲打还是复制来的static List<Map<String, Object>> getTheList(){
    List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>();
    list1.add(Entity.createEntity(R.drawable.icon, "first", "first"));
    list1.add(Entity.createEntity(R.drawable.icon, "second", "second"));return list;
    }返回的为什么不是list1.。具体不怎么不正常?
      

  5.   

    TAT。TAT囧4楼是对的我实验的时候省懒 写内部类  只有有个引用。。
      

  6.   

    呵呵 害我去试验了下 没错,要操作mySimple创建时传进的对象才有效的
      

  7.   

    这个说的有道理,代码是盲打的,应该返回list1,各位不好意思