Ich möchte durch RecyclerView
suchen, ich habe List<BaseOfCards>
(BaseOfCards ist mein Getter & Setter-Klasse) Mein RecyclerViewAdapter:Suche durch RecyclerView Suche mit
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {
private LayoutInflater inflater;
private List<BaseOfCards> items;
//private int itemLayout;
//String cardvalue;
private Activity mActivity;
public RecyclerViewAdapter(Activity mActivity, Context context, List<BaseOfCards> items) {
this.mActivity = mActivity;
inflater = LayoutInflater.from(context);
this.items = items;
//this.itemLayout = itemLayout;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.custom_row, parent, false);
MyViewHolder holder = new MyViewHolder(view, mActivity);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
BaseOfCards item = items.get(position);
holder.title.setTag(item);
holder.title.setText(item.getCardName());
}
@Override
public int getItemCount() {
return items.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private Activity mActivity;
TextView title;
ImageView titileImageView;
public MyViewHolder(View itemView, Activity mActivity) {
super(itemView);
titileImageView = (ImageView) itemView.findViewById(R.id.image_country);
title = (TextView) itemView.findViewById(R.id.listText);
this.mActivity = mActivity;
}
}
}
ich Suche meinem Menü hinzufügen und initialisieren es in MainActivity:
MenuItem menuItem = menu.findItem(R.id.action_search1);
searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
SearchManager manager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setIconifiedByDefault(true);
Was muss ich als nächstes tun? Machen Sie meine RecyclerViewAdapterimplement Filterable
oder was? Oder machen Sie einfach Klasse filter
in * RecyclerViewAdapter ** und rufen Sie einfach von meinem MainActivity?
Cool, ich werde diese Funktionalität mit dieser Methode ('getFilter') in meinem https://github.com/davideas/FlexibleAdapter hinzufügen ;-) – Davidea
@Davidea oh, es ist großartig, vielen Dank! – Ololoking
Ich fügte diese Funktionalität hinzu, aber es war komplizierter als vorgesehen. Tatsächlich bin ich jetzt nicht davon überzeugt, diesen Filter im Adapter zu haben, denn die Objekte im Adapter sind ** bereits ** eine Kopie von etwas Originellem, das aus einer Quelle wie DB/XML/JSON im Speicher als Domänenobjekt kommt - Das Problem ist nicht der Filter, sondern der add/del/mod, den Sie auf einer ** gefilterten ** Liste durchführen: Alle Änderungen sollten sich auch in der "ursprünglichen" Adapterliste widerspiegeln ** UND ** in der ursprünglichen Quelle ... At Dieser Punkt ist praktischer, um eine gefilterte Kopierliste direkt vom Quell- und Update-Adapter mit dieser Liste zu haben. – Davidea