如何管理android中回收器适配器的完全更改

如何管理android中回收器适配器的完全更改,android,android-recyclerview,Android,Android Recyclerview,我正试图找出如何适当地管理适配器和相应的recyclerview。 情况如下: 我在数据库上进行搜索查询,每次输入新的搜索时,整个数据集都可能发生变化。我应该每次实例化一个新适配器吗?或者我应该从适配器中删除项(甚至所有项)并插入新项吗?还是别的什么 编辑:我应该更好地解释情况。 我使用Algolia来存储一些数据,这些数据是在JSON对象中检索的。 然后获得的JSONArray作为字符串传递给适配器,适配器将解析字符串中的每个元素以及每个元素的相应数据。 由于每次写入(或删除)一个新字符时都会

我正试图找出如何适当地管理适配器和相应的recyclerview。
情况如下:
我在数据库上进行搜索查询,每次输入新的搜索时,整个数据集都可能发生变化。我应该每次实例化一个新适配器吗?或者我应该从适配器中删除项(甚至所有项)并插入新项吗?还是别的什么

编辑:我应该更好地解释情况。
我使用Algolia来存储一些数据,这些数据是在JSON对象中检索的。 然后获得的JSONArray作为字符串传递给适配器,适配器将解析字符串中的每个元素以及每个元素的相应数据。

由于每次写入(或删除)一个新字符时都会发出搜索,因此每次我获得一个新的JSON响应时,它可能与前一个类似、相同或完全不同。

只需添加新函数来更新列表即可

public void updateList(List<DataHolder> list){
     displayedList = list;
     notifyDataSetChanged();
}
public void updateList(列表){
displayedList=列表;
notifyDataSetChanged();
}

您可以执行以下操作

mAdapter.notifyDataSetChanged();
或者你可以

mAdapter.notifyItemRangeChanged(position, list.size());
此外,您还可以尝试以下操作来更新回收器视图

recyclerView.setAdapter(new RecyclerViewAdapter(newList));
recyclerView.invalidate();

每次都可以实例化一个新的适配器!如果
数据类型未更改,则只需通知适配器just do list.clear();列表。添加所有(项目);adapter.notifydatasetchanged()您的数据来自哪里?什么数据库?本地sqlite db?我在post@pskink中添加了更多信息