Android 更新Recyclerview的项目计数

Android 更新Recyclerview的项目计数,android,android-recyclerview,android-arrayadapter,Android,Android Recyclerview,Android Arrayadapter,我正在尝试在我的应用程序中实现搜索功能,但我遇到了一个问题 例如,当我搜索黄色的花时,我得到了200个结果,我将200存储在NumberWalls变量中,以;为了让adapter在RecyclerView中只显示200个项目,并且每件事都能正常工作,我的问题是当我搜索例如Google Picture时,我找到了4个结果,当我再次搜索黄色花朵时,我在RecyclerView上只看到4个项目,而不是200个 private void setAdapterForRecyclerView(List&l

我正在尝试在我的应用程序中实现搜索功能,但我遇到了一个问题

例如,当我搜索黄色的花时,我得到了200个结果,我将200存储在NumberWalls变量中,以;为了让adapter在
RecyclerView
中只显示200个项目,并且每件事都能正常工作,我的问题是当我搜索例如Google Picture时,我找到了4个结果,当我再次搜索黄色花朵时,我在
RecyclerView
上只看到4个项目,而不是200个

 private void setAdapterForRecyclerView(List<Wallpaper> wlls, int NumberWalls) {

        if (myAdapter == null) {
            errortv.setVisibility(View.GONE);
            myAdapter = new MyAdapterSearch(wlls, getApplicationContext(), new RecyclerViewClickListener() {
                @Override
                public void onClick(View view, Wallpaper wallpaper) {
                    Intent intent = new Intent(Search.this, FullScreen.class);
                    intent.putExtra("img", wallpaper.getThumbnails());
                    intent.putExtra("tags", wallpaper.getTitle());
                    startActivity(intent);
                }

                @Override
                public void onClick(View view, Category categories) {

                }
            }, (NumberWalls));
            recyclerView.setAdapter(myAdapter);

        } else {
            int position = myAdapter.getItemCount();
            myAdapter.getItems().addAll(wlls);
            myAdapter.notifyItemRangeInserted(position, NumberWalls);
        }
        progressbar.setVisibility(View.GONE);
    }

我想你可以放下
numberItem
这个东西,让
getItemCount()
简单地返回
wallpaps.size()
。因为,你给了适配器搜索返回的墙纸列表,所以我猜你想在列表中显示所有墙纸

另外,在更新适配器时,只需将结果设置为项目,而不是将搜索结果添加到项目列表中

myAdapter.setWallpapers(wlls);
并将方法
setWallpapers()
添加到适配器:

public void setWallpapers(List<Wallpaper> wallpapers) {
    this.wallpapers = wallpapers;
    notifyDatasetChanged();
}
公共壁纸(列出壁纸){
this.wallpaps=壁纸;
notifyDatasetChanged();
}

这是完整的代码吗?@JawadMalik chekc我的新更新帖子查看我的扩展答案谢谢你的回答,只有当我没有很多项目时,它才有效,当我滚动时,我会丢失以前的项目,因为我每次滚动时都会按页面显示项目,我想这是另一个问题。我想分页是一个单独的主题,因此,您最好为它创建一个新问题,并接受我修复itemcount问题的答案。
myAdapter.setWallpapers(wlls);
public void setWallpapers(List<Wallpaper> wallpapers) {
    this.wallpapers = wallpapers;
    notifyDatasetChanged();
}