首页 > 解决方案 > 如何使用 Recyclerview android 将 searchView 放在多个视图中

问题描述

我知道如何在回收器视图中将搜索视图放在单个视图中,但是在多视图回收器视图中呢?在这里,我使用多视图,因为在单元格之间显示广告。

这是我在单视图回收器视图中实现搜索的代码:- 适配器类:-


private List<Model> models;
public StoriesAdapter(ArrayList<Model> models, Context context) {
        this.models = models;
        this.context = context;
    }
.
.
.
@SuppressLint("NotifyDataSetChanged")
    public void filterList(List<Model> filteredList){
        models = filteredList;
        notifyDataSetChanged();
    } 


MainActivity 类:

private MyAdapter mAdapter;
List<Model> models;

//Oncreate Mthod:-

EditText searchBar = findViewById(R.id.searchBaar);
searchBar.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) {

            }

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

models = new ArrayList<>();

private void filter(String text){
        List<Model> filteredList = new ArrayList<>();

        for (Model items : models)


        {
            if (items.getTitle().toLowerCase().contains(text.toLowerCase())){
                filteredList.add(items);
            }
        }

        mAdapter.filterList(filteredList);


    }

现在的问题是如果我的数组列表被定义为这样的对象,我该如何添加搜索视图:- private ArrayList<Object> mList;

public StoriesAdapter(ArrayList<Object> mList, Context context) {
        this.mList = mList;
        this.context = context;
    }

标签: javaandroidandroid-recyclerview

解决方案


推荐阅读