更新Recyclerview数据的最佳方式

时间:2016-11-21 21:32:48

标签: android database android-recyclerview recycler-adapter

我目前正在学习recyclerview并使用本教程编写代码 http://wiseassblog.com/2016/06/22/android-recyclerview-tutorial-onclick-and-design-part-3b/

在教程中,该人说他更新Recyclerview数据的方式不利于从互联网数据库中获取数据的程序,这就是我需要它做的事情。

所以我想问你这样做的最好方法是什么,以便该计划运作良好?

目前的代码是:

@Override

    public void onSecondaryIconClick(int p) {

        ListItem item = (ListItem) listData.get(p);

        //update our data

        if (item.isFavourite()){

            item.setFavourite(false);

        } else {

            item.setFavourite(true);

        }

        //pass new data to adapter and update

        adapter.setListData(listData);

        adapter.notifyDataSetChanged();

    }

并在适配器上:

public void setListData(ArrayList<ListItem> exerciseList) {

    this.listData.clear();

    this.listData.addAll(exerciseList);

}

1 个答案:

答案 0 :(得分:0)

看起来点击辅助图标的目的是:1)切换该项目是否为收藏夹的值,然后2)更改该项目的显示以指示偏袒。 所以你不想在那时重建整个列表。 你应该能够取代:

    //pass new data to adapter and update

    adapter.setListData(listData);

    adapter.notifyDataSetChanged();

    adapter.notifyItemChanged(p);

只更新适配器中的那一项。