Recyclerview筛选器不工作。它未搜索元素 当我筛选回收视图时,它显示未找到。我的搜索视图未工作。当我运行代码时,它的结果未找到,我认为onQueryTextChange中存在问题 myfilter函数也不起作用 @凌驾 公共布尔值onQueryTextSubmit(字符串查询){ Toast.makeText(SecondActivity1.this,“名称为:”+query,Toast.LENGTH\u SHORT.show(); 返回false; } @凌驾 公共布尔onQueryTextChange(字符串newText){ 最终列表filteredModelList=filter(dbList,newText); 如果(filteredModelList.size()>0){ //Toast.makeText(SecondActivity1.this,“Found”,Toast.LENGTH_SHORT.show(); recyclerAdapter.setFilter(filteredModelList); 返回true; }否则{ Toast.makeText(SecondActivity1.this,“未找到”,Toast.LENGTH_SHORT.show(); 返回false; }

Recyclerview筛选器不工作。它未搜索元素 当我筛选回收视图时,它显示未找到。我的搜索视图未工作。当我运行代码时,它的结果未找到,我认为onQueryTextChange中存在问题 myfilter函数也不起作用 @凌驾 公共布尔值onQueryTextSubmit(字符串查询){ Toast.makeText(SecondActivity1.this,“名称为:”+query,Toast.LENGTH\u SHORT.show(); 返回false; } @凌驾 公共布尔onQueryTextChange(字符串newText){ 最终列表filteredModelList=filter(dbList,newText); 如果(filteredModelList.size()>0){ //Toast.makeText(SecondActivity1.this,“Found”,Toast.LENGTH_SHORT.show(); recyclerAdapter.setFilter(filteredModelList); 返回true; }否则{ Toast.makeText(SecondActivity1.this,“未找到”,Toast.LENGTH_SHORT.show(); 返回false; },filter,android-recyclerview,Filter,Android Recyclerview,私有列表筛选器(列表模型、字符串查询){ query=query.toLowerCase(); recyclerAdapter.notifyDataSetChanged(); final List filteredModelList=new ArrayList(); //mRecyclerView.setLayoutManager(新的LinearLayoutManager(SecondActivity1.this)); //mRecyclerView.setAdapter(回收适配器); 用于

私有列表筛选器(列表模型、字符串查询){

query=query.toLowerCase();
recyclerAdapter.notifyDataSetChanged();
final List filteredModelList=new ArrayList();
//mRecyclerView.setLayoutManager(新的LinearLayoutManager(SecondActivity1.this));
//mRecyclerView.setAdapter(回收适配器);
用于(数据库模型:模型){
最终字符串text=model.getName().toLowerCase();
if(text.contains(查询)){
filteredModelList.add(model);
}
}
返回filteredModelList;
//
}
这里是filter方法,它接收参数(dblist,newtext)filter方法在我使用toast时接收这些方法,显示它接受newtext,但没有过滤。我检查了许多站点,但在许多站点点上都是相同的。当我输入name时,toast显示我输入的名称,但它没有过滤

    query = query.toLowerCase();
    recyclerAdapter.notifyDataSetChanged();
    final List<DatabaseModel> filteredModelList = new ArrayList<>();
  //  mRecyclerView.setLayoutManager(new LinearLayoutManager(SecondActivity1.this));
    //  mRecyclerView.setAdapter(RecyclerAdapter);

    for (DatabaseModel model : models) {
        final String text = model.getName().toLowerCase();
        if (text.contains(query)) {
            filteredModelList.add(model);

        }
    }

    return filteredModelList;

  //
}
RecyclerAdapter.java
包com.example.prabhu.databasedemo;
导入android.content.Context;
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Filter;
导入android.widget.Filterable;
导入android.widget.TextView;
导入android.widget.Toast;
导入java.util.ArrayList;
导入java.util.List;
/**
*由用户_adnig于2015年11月14日创建。
*/
公共类RecyclerAdapter扩展了RecyclerView.Adapter{
列表数据库列表;
静态语境;
RecyclerAdapter(上下文,列表dbList){
this.dbList=new ArrayList();
this.context=上下文;
this.dbList=(ArrayList)dbList;
}
@凌驾
public RecyclerAdapter.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
View itemLayoutView=LayoutFlater.from(parent.getContext()).inflate(
R.layout.item_行,空);
//创建视图持有者
ViewHolder ViewHolder=新的ViewHolder(itemLayoutView);
返回视图持有者;
}
@凌驾
BindViewHolder上的公共无效(RecyclerAdapter.ViewHolder,int位置){
holder.name.setText(dbList.get(position.getName());
holder.email.setText(dbList.get(position.getEmail());
}
@凌驾
public int getItemCount(){
返回dbList.size();
}
公共无效设置过滤器(列出国家/地区型号){
//Toast.makeText(RecyclerAdapter.this,“方法被调用”,Toast.LENGTH_SHORT.show();
dbList=newarraylist();
dbList.addAll(countryModels);
notifyDataSetChanged();
}
公共静态类ViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
公共文本视图名称、电子邮件;
公共视图持有者(视图项布局视图){
超级(itemLayoutView);
name=(TextView)itemLayoutView
.findviewbyd(R.id.rvname);
email=(TextView)itemLayoutView.findviewbyd(R.id.rvemail);
itemLayoutView.setOnClickListener(此);
}
@凌驾
公共void onClick(视图v){
意向意向=新意向(上下文、DetailsActivity.class);
Bundle extras=新Bundle();
额外输入(“位置”,getAdapterPosition());
意图.临时演员(临时演员);
/*
int i=getAdapterPosition();
intent.putExtra(“位置”,getAdapterPosition())*/
背景。开始触觉(意图);
Toast.makeText(RecyclerAdapter.context,“您已单击行”+getAdapterPosition(),Toast.LENGTH_LONG.show();
}
}
}
这是我的Recycleradapter代码。我也使用了Recycleradapter.setFilter(FilterModelList)方法,但它对我不起作用。我认为在我的setFilter方法中存在错误,我还没有解决。
。但当我清除搜索窗口小部件时,我没有得到完整列表,而是得到了空的RecyclerView。

您可以发布stacktrace和错误日志吗?没有显示错误。只有筛选方法不起作用,当我们在searchview中输入名称时,它没有进行筛选。您的筛选方法可能不起作用…您仍然没有包含
f的方法定义ilter(dbList,newText)
我使用了mathod过滤器,但不起作用
    query = query.toLowerCase();
    recyclerAdapter.notifyDataSetChanged();
    final List<DatabaseModel> filteredModelList = new ArrayList<>();
  //  mRecyclerView.setLayoutManager(new LinearLayoutManager(SecondActivity1.this));
    //  mRecyclerView.setAdapter(RecyclerAdapter);

    for (DatabaseModel model : models) {
        final String text = model.getName().toLowerCase();
        if (text.contains(query)) {
            filteredModelList.add(model);

        }
    }

    return filteredModelList;

  //
}
RecyclerAdapter.java
package com.example.prabhu.databasedemo;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by user_adnig on 11/14/15.
 */
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder>  {
    List<DatabaseModel> dbList;
    static  Context context;
    RecyclerAdapter(Context context, List<DatabaseModel> dbList ){
        this.dbList = new ArrayList<>();
        this.context = context;
        this.dbList = (ArrayList<DatabaseModel>) dbList;

    }

    @Override
    public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.item_row, null);

        // create ViewHolder

        ViewHolder viewHolder = new ViewHolder(itemLayoutView);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(RecyclerAdapter.ViewHolder holder, int position) {

        holder.name.setText(dbList.get(position).getName());
        holder.email.setText(dbList.get(position).getEmail());

    }

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



    public void setFilter(List<DatabaseModel> countryModels) {
      //  Toast.makeText(RecyclerAdapter.this,"Method is called", Toast.LENGTH_SHORT).show();
        dbList = new ArrayList<>();
        dbList.addAll(countryModels);
        notifyDataSetChanged();
    }



    public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        public TextView name,email;

        public ViewHolder(View itemLayoutView) {
            super(itemLayoutView);
            name = (TextView) itemLayoutView
                    .findViewById(R.id.rvname);
            email = (TextView)itemLayoutView.findViewById(R.id.rvemail);
            itemLayoutView.setOnClickListener(this);

        }

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(context,DetailsActivity.class);

            Bundle extras = new Bundle();
            extras.putInt("position",getAdapterPosition());
            intent.putExtras(extras);

            /*
            int i=getAdapterPosition();
            intent.putExtra("position", getAdapterPosition());*/
            context.startActivity(intent);
            Toast.makeText(RecyclerAdapter.context, "you have clicked Row " + getAdapterPosition(), Toast.LENGTH_LONG).show();
        }
    }

}