Android关于Adapter更新数据问题案例

adapter更新数据的常见两种方式:


一、adapter里面new一个集合,对外只提供添加数据和更新数据的方法

MyAdapter extends BaseAdapter {

ArrayList<T> mItemList = new ArrayList<T>();

     public MyAdapter(){}

     public void updateData(List<T> list) {

           if(null == list) return;

mitemlist.clear();

mitemlist.addAll(list);

notifyDataSetChanged();

}

public void addItem(T data) {

mitemlist.add(data);

}

public void addData(List<T> list) {

if(null == list) return;

mitemlist.addAll(list);

}

}


二、通过构造方法从外面传入,更新数据的时候只需在外面集合更新,然后调用adapter.notifyDataSetChanged()方法即可。


注意:两种最好别混用,否则很容易出bug,比如,从外部集合给adapter提供数据集合,但同时又提供以上的updateData()方式更新数据,如果把外部提供给adapter的数据集合传入updateData()因为updateData()会先clear,然后再add,这样就会导致外部数据集合和adapter数据集合(实际上这两种是同一个集合)都被清空。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容