当前位置: 首页 > 知识库问答 >
问题:

获取回收视图当前大小后项目更改(后项目删除)(通知我删除(位置))

隗瑞
2023-03-14

在从recycler视图中移除项目后,我必须获取recyclerview的数据集大小

我正在从适配器中删除项目

    @Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

    String string = uriStringList.get(position);

    if (string != null) {
        holder.imagePhoto.setImageURI(Uri.parse(string));
    }

    holder.crossImg.setOnClickListener(view -> {
        uriStringList.remove(position);
        notifyItemRemoved(position);
    });

}

代码片段

    binding.recyclerViewImg.setLayoutManager(new LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false));
    binding.recyclerViewImg.setHasFixedSize(true);
    photoListAdapter = new PhotoListAdapter();
    binding.recyclerViewImg.setAdapter(photoListAdapter);
    photoListAdapter.setUriStringList(uriStringList);

共有1个答案

蓬运诚
2023-03-14

在片段中,您可以在适配器上使用registerAdapterDataObserver

例如:

photoListAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
            @Override
            public void onItemRangeRemoved(int positionStart, int itemCount) {
                Log.d(
                        "MG-onItemRangeRemoved", "count" + photoListAdapter.getItemCount()
                );
            }
        });
 类似资料:
  • 这是不是意味着我没有刷新我的适配器还是什么? @重写公共void onDeleteClick(int position){FoodInfo selectedItem; 食物适配器 } 这是我删除项目后的删除方法,它仍然存在于我的回收视图中,并在firebase中消失 我必须离开这个页面并再次访问,然后它只显示与firebase完全相同的项目 有人帮忙吗?

  • 但是建议的解决方案对我来说都不起作用。我从sqlite数据库中的RecycerView列表项,当我向左滑动时,相应的数据将成功地从数据库中删除。由于某些原因,昨天一切都工作得很好,删除的项从列表中消失了,但从今天开始,该项在RecycerView中仍然可见。下面是我的代码:

  • 问题内容: 我在Python中有一个比较大的字典,希望不仅能够从其中删除项目,而且实际上可以从程序中的这些删除中 回收 内存。我遇到了一个问题,尽管我从字典中删除了项目,甚至手动运行了垃圾收集器,但Python似乎并没有释放内存本身。 一个简单的例子: 我想象发生了什么事,尽管删除了条目并运行了垃圾回收器,但是Python并没有继续调整字典的大小。我的问题是,是否有任何简单的方法可以解决此问题,或

  • 删除项目后,“我的回收器”视图未更新。此recyclerView位于片段内部。我试过各种方法,但都不管用。 片段类中的适配器声明 回收服务适配器: } 调试项目时,我可以看到该项实际上正在从ArrayList中删除。但不在循环视图中更新。 删除后,如果滚动回收站视图,则从回收站视图中删除已删除的项。但不是没有滚动。

  • 我有一个活动,在创建时,我创建了五个文件,然后读取这些文件并添加到我的recyclerview中。我还在我的recyclerview中添加了滑动功能。当一个项目被滑动时,它删除了recycler视图中该位置的单元格,同时也删除了我创建的文件。我面临的问题是,假设在我的recyclerview中有5个项目1、2、3、4和5,我滑动鼠标删除1,包含1的文件被删除,但在我的recyclerview中,当

  • 在我的应用程序中,我需要能够从TreeView中删除每个项目。 我给树景注入了控制器 我的删除代码: 实际问题是:如何删除根元素?我在api中找不到任何方法,我不想创建新实例,我更喜欢依赖项注入解决方案。我想我可以在创建下一个节点之前隐藏此项,但它似乎有点不正常。 谢谢你花在这个话题上的时间!