如何在多个参数上使用SearchView过滤RecyclerView [英] How to filter Recyclerview with SearchView on multiple parameters

查看:221
本文介绍了如何在多个参数上使用SearchView过滤RecyclerView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经实现了这里给出的SearchView示例。



....以过滤并列出公司名称参数产品名称。

在我的项目中,我想扩展这个以进一步过滤城市名称参数

以下是在参数productname上过滤的onQueryTextSubmit的代码。

@覆盖
public boolean onQueryTextSubmit(String query){
return false;
}

  private List< ExampleModel> (List< ExampleModel> models,String query){
query = query.toLowerCase();

final List< ExampleModel> filteredModelList = new ArrayList<>();
for(ExampleModel model:models){
final String text = model.getText()。toLowerCase();
final String city = model.getCity()。toLowerCase();
final String product = model.getProduct()。toLowerCase();
final String services = model.getServices()。toLowerCase();
final String state = model.getState()。toLowerCase();
final String zone = model.getZone()。toLowerCase();
if(product.contains(query)){
filteredModelList.add(model);
}

}
return filteredModelList;

我应该如何从这里前进?

解决方案

只需在这里添加城市名称验证即可:

  if(product.contains(query)|| city.contains(query)){
filteredModelList.add(model);
}


I have implemented the SearchView example given here.

How to filter a RecyclerView with a SearchView

....to filter and list company names based on the parameter "Product name".

In my project, I want to extend this to further filter on the parameter on "city name"

The below is the code for the onQueryTextSubmit which filters on the parameter "productname".

@Override public boolean onQueryTextSubmit(String query) { return false; }

private List<ExampleModel> filter(List<ExampleModel> models, String query) {
    query = query.toLowerCase();

    final List<ExampleModel> filteredModelList = new ArrayList<>();
    for (ExampleModel model : models) {
        final String text = model.getText().toLowerCase();
        final String city = model.getCity().toLowerCase();
        final String product = model.getProduct().toLowerCase();
        final String services = model.getServices().toLowerCase();
        final String state = model.getState().toLowerCase();
        final String zone = model.getZone().toLowerCase();
        if (product.contains(query)) {
            filteredModelList.add(model);
        }

    }
    return filteredModelList;
}

How should I go forward from here?

解决方案

Just add the city name verification here:

    if (product.contains(query) || city.contains(query)) {
        filteredModelList.add(model);
    }

这篇关于如何在多个参数上使用SearchView过滤RecyclerView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆