美文网首页Android开发经验谈
Android关于Adapter更新数据问题案例

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

作者: Lostoy007 | 来源:发表于2016-12-21 15:33 被阅读107次

    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数据集合(实际上这两种是同一个集合)都被清空。

    相关文章

      网友评论

        本文标题:Android关于Adapter更新数据问题案例

        本文链接:https://www.haomeiwen.com/subject/iuuqvttx.html