Android RecyclerView-像ListView一样使用键盘筛选项目

Android RecyclerView-像ListView一样使用键盘筛选项目,android,android-recyclerview,filter,Android,Android Recyclerview,Filter,当在ListView的适配器中实现Filterable时,在视图处于活动状态时按键盘上的键可以很好地过滤项目(底部有一个浮动的Filter小部件),但是对RecyclerView的适配器执行相同操作没有任何作用。在后一种情况下,筛选项目的唯一方法是使用替代方法,例如使用搜索视图。根据这里给出的各种答案,Filter是一个非常适合RecyclerView使用的小部件 例如,对于使用Android TV的用户来说,使用上述键盘过滤项目非常方便 PS:我不认为发布ListView和RecyclerVi

当在
ListView
的适配器中实现
Filterable
时,在视图处于活动状态时按键盘上的键可以很好地过滤项目(底部有一个浮动的
Filter
小部件),但是对
RecyclerView
的适配器执行相同操作没有任何作用。在后一种情况下,筛选项目的唯一方法是使用替代方法,例如使用
搜索视图
。根据这里给出的各种答案,
Filter
是一个非常适合
RecyclerView
使用的小部件

例如,对于使用Android TV的用户来说,使用上述键盘过滤项目非常方便


PS:我不认为发布
ListView
RecyclerView
之间的差异会有任何好处,但如果需要,我会在这两种方式中包括详细的实现。

您是否尝试添加TextWatcher来搜索编辑文本

editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            adapter.getFilter().filter(s);
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });

如果您想在recycler视图中筛选项目,只需在源列表上应用筛选器,并用筛选的项目重置适配器项目,然后调用
notifyDatasetChanged
@MohammadOmidvar抱歉,这不是我的意思。我知道如何筛选项目。这是关于
RecyclerView
中似乎缺少的一个特定功能,
EditText
究竟从何而来?该功能在
ListView
中工作,没有任何
EditText
SearchView
(我已经在文章中说明过了),您只需按键盘上的键,即可自动调用
adapter.getFilter()。过滤器(约束)
。如果您将
EditText
TextWatcher
一起使用,它将取而代之的是焦点,而按向上/向下按钮将不会聚焦列表项。