RecyclerView Adapter 的数据

RecyclerView Adapter's data

所以我有一个 RecyclerView 及其适配器。 RecyclerView 的任何更改都保存在 activity 中,适配器仅通知 activity RecyclerView 的哪些(以及如何)项必须更改。

这是 activity 中发生的事情的示例:

list.remove(position);
adapter.notifyItemRemoved(position);
adapter.notifyItemRangeChanged(position, list.size());

因此 activity 的列表数据正在通过调用 list.remove(position) 进行更新 还有一个问题。我还应该更新适配器的列表数据吗?我应该怎么做?

首先不应修改 Activity 中 ArrayList 的项目,因为这会更改 Activity 的 ArrayList 而不是 RecyclerView Adapter。在其构造函数中将 ArrayList 传递给 RecyclerView Adapter。 (例如 feedItemList)。

然后您可以在 RecyclerView Adapter 中使用以下方法定义的方法 onItemDismiss() 并在要删除行的位置调用它。

public void onItemDismiss(int position) {
    if(position!=-1 && position<feedItemList.size())
    {
        feedItemList.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, getItemCount());
    }
}

@Override
public int getItemCount() {
    return (null != feedItemList ? feedItemList.size() : 0);
}