当前位置: 首页 > 编程笔记 >

Android 使用SearchView过滤RecyclerView中的项目

申屠宗清
2023-03-14
本文向大家介绍Android 使用SearchView过滤RecyclerView中的项目,包括了Android 使用SearchView过滤RecyclerView中的项目的使用技巧和注意事项,需要的朋友参考一下

示例

添加filter方法RecyclerView.Adapter:

public void filter(String text) {
        if(text.isEmpty()){
            items.clear();
            items.addAll(itemsCopy);
        } else{
            ArrayList<PhoneBookItem> result = new ArrayList<>();
            text = text.toLowerCase();
            for(PhoneBookItem item: itemsCopy){
                //通过姓名或电话匹配
                if(item.name.toLowerCase().contains(text) || item.phone.toLowerCase().contains(text)){
                    result.add(item);
                }
            }
            items.clear();
            items.addAll(result);
        }
        notifyDataSetChanged();
    }

itemsCopy在适配器的构造函数中初始化。itemsCopy.addAll(items)

如果您这样做,只需filter从OnQueryTextListener发信SearchView:

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        adapter.filter(query);
        return true;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        adapter.filter(newText);
        return true;
    }
});
           

 类似资料:
  • 我正在尝试从支持库中实现。我希望用户使用在中筛选电影的。 到目前为止,我已经学习了一些教程,并且已经将添加到中,但我不确定从这里要往哪走。我已经看到了一些例子,但没有一个显示结果,当您开始键入。 这是我的: 这是我的:

  • 下面是我正在研究的片段:

  • 我有一个RecyclerView,这些物品应该在刷卡后移除。我用ItemTouchHelper类解决了这个问题。在onchildraw方法中,我设置了一个红色背景,在列表项后面滑动时出现。最重要的是,在正确的网站上有一个垃圾图标。它工作正常,但是如果你开始刷卡,但不刷卡到底,然后又刷卡回到正常位置,垃圾桶的图标不会消失。但是,它只有在我滑动所选项目时才会消失,而不是在普通项目上。 下面是ItemT

  • 它在用java编写的旧项目中运行良好 当相同的东西写在kotlin它不工作... 回收问题查看项目高度过大 //初始化适配器和项目装饰 项目视图xml文件 包含recyclerview的活动布局文件 我找不到我做错了什么 通过布局检查器捕获输出 我的旧项目输出

  • Kotlin 如何使用 SearchBar + SearchView? https://m3.material.io/components/search/overview 显示 Jetpack Compose 的还在计划中,但是有 MDC 的 能否在 Kotlin 里使用 MDC 提供的 SearchBar + SearchView? 如果可以,应该怎么使用?

  • 本文向大家介绍Android RecyclerView添加搜索过滤器的示例代码,包括了Android RecyclerView添加搜索过滤器的示例代码的使用技巧和注意事项,需要的朋友参考一下 搜索过滤功能,相信大家都能用到,一般都是针对列表进行过滤的。下面给大家提供一种过滤列表的方法。 老规矩,先上图 RecycleView搜索过滤器-getFilter() Android 提供了Filetera