Java 从适配器中刷新整个RecyclerView

Java 从适配器中刷新整个RecyclerView,java,android,android-recyclerview,adapter,Java,Android,Android Recyclerview,Adapter,我尝试从适配器类onBindViewHolder方法中刷新整个RecyclerView。 如果单击列表中的某个项目,我希望该项目的参数会发生更改。 最好的方法是什么 适配器类中的onBindViewHolder方法: RecyclerView类中的initRecyclerView方法: 找到了解决办法 不幸的是,注释中的两种解决方案都没有帮助,notifyDataSetChanged、notifyItemChangedposition方法没有重新刷新数据 也许它会在将来帮助某人: 为了刷新整个列

我尝试从适配器类onBindViewHolder方法中刷新整个RecyclerView。 如果单击列表中的某个项目,我希望该项目的参数会发生更改。 最好的方法是什么

适配器类中的onBindViewHolder方法:

RecyclerView类中的initRecyclerView方法:

找到了解决办法

不幸的是,注释中的两种解决方案都没有帮助,notifyDataSetChanged、notifyItemChangedposition方法没有重新刷新数据

也许它会在将来帮助某人: 为了刷新整个列表,我访问Activity Store中的init方法initImageBitMapsForallPlayer,并从适配器中的onBindViewHolder调用它:

if (context instanceof Store) {
    notifyItemChanged(position);
    ((Store) context).initImageBitmapsForAllPlayers();
}

如果希望更改整个项目集,只需在适配器内调用notifyDataSetChanged。如果您知道哪些项目已更改,则notifyItemChanged、notifyItemInserted和notifyItemDeleted更有效。

如果您希望更改整个项目集,只需在适配器内调用notifyDataSetChanged。如果您知道哪些项目已更改,则notifyItemChanged、notifyItemInserted和notifyItemDeleted更有效。

要在单击列表时仅更改列表中的一个项目,请在更改其参数后,调用:

notifyItemChanged(position) 

要在单击列表时仅更改列表中的一项,请在更改其参数后,调用:

notifyItemChanged(position) 

如果您使用了recyclerview并希望更改整个recycler视图项,以便可以使用notifyDataSetChanged;如果您从recyclerview中删除了一些项,以便可以使用notifyItemDeleted;如果您添加了更多数据,则在添加数据后只需调用notifyItemChanged、notifyItemInserted


如果您想从“活动”中添加、删除和更新数据,以便可以使用界面

如果您使用了recyclerview并希望更改整个“回收器”视图项目,以便可以使用notifyDataSetChanged,如果您从recyclerview中删除了一些项目,以便可以使用notifyItemDeleted,如果您添加了更多数据,则在添加数据后只需调用notifyItemChanged、notifyItemInserted

如果要从“活动”中添加、删除和更新数据,以便可以使用接口调用下面的方法来刷新适配器内部:

notifyDataSetChanged()
内部活动

if (recyclerView.getAdapter() != null) {
     recyclerView.getAdapter().notifyDataSetChanged();
}
调用以下方法以刷新适配器内部:

notifyDataSetChanged()
内部活动

if (recyclerView.getAdapter() != null) {
     recyclerView.getAdapter().notifyDataSetChanged();
}
试试这个:

RecyclerView recyclerView = findViewById(R.id.rv_store);
recyclerView.setLayoutManager(new LinearLayoutManager(LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
StoreRecyclerViewAdapter adapter = new StoreRecyclerViewAdapter(this, allPlayers, allPrices, allStatus, open, close);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
试试这个:

RecyclerView recyclerView = findViewById(R.id.rv_store);
recyclerView.setLayoutManager(new LinearLayoutManager(LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
StoreRecyclerViewAdapter adapter = new StoreRecyclerViewAdapter(this, allPlayers, allPrices, allStatus, open, close);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();

两者都不起作用。没有错误消息,列表或项目未刷新。两者都不工作。没有错误消息,列表或项目未刷新。两者都不工作。没有错误消息,列表或项目未刷新。两者都不工作。没有错误消息,并且列表或项目未刷新。