AndroidRecyclerViewFilteringJava——过滤导致两个列表都删除项
创始人
2024-10-09 17:32:24
0

在RecyclerView中实现过滤时,由于基础数据集的过滤,两个数据列表(即过滤后的数据列表和原本的数据列表)都会删除相应的项,而不仅是过滤后的数据列表。

要解决这个问题,需要使用两个列表:一个保存所有原始数据项,一个保存当前过滤后的数据项,同时将过滤逻辑中涉及到的列表项都改为操作过滤后的列表项。

下面是示例代码,可以在RecyclerView Adapter中使用:

public class MyAdapter extends RecyclerView.Adapter {
    private List dataList;//存储原始数据列表

    private List filteredDataList;//存储过滤后的数据列表

    private OnItemClickListener listener;

    public MyAdapter(List dataList, OnItemClickListener listener) {
        this.dataList = dataList;
        this.filteredDataList = dataList;
        this.listener = listener;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        String data = filteredDataList.get(position);
        holder.textView.setText(data);
    }

    @Override
    public int getItemCount() {
        return filteredDataList.size();
    }

    public void filter(String query) {
        List tempList = new ArrayList<>();
        for (String data : dataList) {
            if (data.toLowerCase().contains(query.toLowerCase())) {
                tempList.add(data);
            }
        }
        filteredDataList = tempList;
        notifyDataSetChanged();
    }

    public interface OnItemClickListener {
        void onItemClick(String itemData);
    }

    public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        private TextView textView;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.text);
            itemView.setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {
            listener.onItemClick

相关内容

热门资讯

据了解!微友辅助器免费版&qu... 据了解!微友辅助器免费版"一直是有辅助插件"(哔哩哔哩)1、实时微友辅助器免费版透视辅助更新:用户可...
随着!桂林字牌黑科技"... 随着!桂林字牌黑科技"总是存在有辅助挂"(哔哩哔哩)进入游戏-大厅左侧-新手福利-激活码辅助透视技能...
此事备受玩家关注!黑桃k大厅辅... 此事备受玩家关注!黑桃k大厅辅助"原来存在有辅助插件"(哔哩哔哩)1、黑桃k大厅辅助免费脚本咨询教程...
黑科技技巧!情怀宜春挂&quo... 黑科技技巧!情怀宜春挂"都是存在有辅助方法"(哔哩哔哩);暗藏猫腻,小编详细说明情怀宜春挂破解器有用...
2026版复盘!新蜜瓜大厅控制... 2026版复盘!新蜜瓜大厅控制器"都是确实有辅助技巧"(哔哩哔哩)所有人都在同一条线上,像星星一样排...
突发!手游蛮王辅助"... 突发!手游蛮王辅助"总是是真的有辅助软件"(哔哩哔哩)在进入手游蛮王辅助软件靠谱后,参与本局比赛的八...
围绕透视问题!功夫川麻插件&q... 围绕透视问题!功夫川麻插件"果然确实有辅助攻略"(哔哩哔哩)一、功夫川麻插件游戏安装教程牌型概率发牌...
黑科技辅助!新上游辅助&quo... 黑科技辅助!新上游辅助"果然真的是有辅助技巧"(哔哩哔哩)1、实时新上游辅助透视辅助更新:用户可以随...
据文件显示!新天道辅助脚本&q... 据文件显示!新天道辅助脚本"切实确实有辅助攻略"(哔哩哔哩)1)新天道辅助脚本有没有挂:进一步探索新...
此事引发广泛关注!皇豪互娱控制... 此事引发广泛关注!皇豪互娱控制系统"真是真的是有辅助app"(哔哩哔哩)一、皇豪互娱控制系统可以开透...