声明一个本地变量:static List<Map<String,Object>> mylist;
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;
}
SimpleAdapter mySimple = new SimpleAdapter(this, Entity.mylist, R.layout.listview, from, to);
第一种方法更新数据:
mylist = getTheList();
mySimple.notifyDataSetChanged();
第二种方法更新数据:
mylist.clear();
mylist.addAll(getTheList());
mySimple.notifyDataSetChanged();
两种方法,本人认为没有区别,但是在绑定Adapater的时候有区别,第一种不正常工作。
------解决方案--------------------
第一个不工作正常,只是改变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();