在使用ListView、GridView等控件时,会使用到adapter。
那么数据更新时,我们通常会使用adapter.notifyDataSetChanged();
有时会发现,这句话不起作用,原因如下:
1、数据源没有更新,调用notifyDataSetChanged无效。
2、数据源更新了,但是它指向新的引用,调用notifyDataSetChanged无效。
3、数据源更新了,但是adpter没有收到消息通知,无法动态更新列表。
比如,我们的数据源是 userLists(用户列表),
1.调用notifyDataSetChanged之前,没有更新userLists;对应上面第一种情况
2.userLists = new ArrayList(); ......(此处省略代码两万行); 对应上面第二种情况