java搜索视图回收器视图搜索过滤器在安卓中无法正常工作
搜索视图位于回收视图中,但工作不正常。RecyclerView搜索筛选器不工作:
public class searchAdapter extends RecyclerView.Adapter<searchAdapter.SearchViewHolder> implements
Filterable {
Context context;
ArrayList<String> data=new ArrayList<>();
ArrayList<String> fulldata=new ArrayList<>();
public searchAdapter(Context context, ArrayList<String> data) {
this.context = context;
this.data = data;
this.fulldata=new ArrayList<>(data);
}
@NonNull
@Override
public SearchViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View
view=LayoutInflater.from(parent.getContext()).inflate(R.layout.recycledata,parent,false);
return new SearchViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull SearchViewHolder holder, int position) {
holder.textView.setText(data.get(position));
}
@Override
public int getItemCount() {
return data.size();
}
@Override
public Filter getFilter() {
return filter;
}
Filter filter=new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
ArrayList<String> filterlist=new ArrayList<>(data);
if (constraint.toString().toLowerCase().isEmpty()){
filterlist.addAll(fulldata);
}else{
for (String movie:fulldata){
if (movie.toLowerCase().contains(constraint.toString().toLowerCase())){
filterlist.add(movie);
}
}
}
FilterResults results=new FilterResults();
results.values=filterlist;
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
data.clear();
data.addAll((Collection<? extends String>) results.values);
notifyDataSetChanged();
}};
class SearchViewHolder extends RecyclerView.ViewHolder{
TextView textView;
public SearchViewHolder(@NonNull View itemView) {
super(itemView);
textView=itemView.findViewById(R.id.textview);
}
}
}
共 (0) 个答案