viewholder recyclerview item holder getadapterposition from child android-recyclerview autocompletetextview

android-recyclerview - holder - recyclerview get item position



Cómo usar AutoCompleteTextView con RecyclerView.Adapter pero no con ArrayAdapter en android (1)

Tengo una condición donde la sugerencia automática debe implementarse. Para ese propósito, he estado tratando de usar el RecyclerView.Adapter personalizado. Pero el problema es que parece que AutoCompleteTextView está hecho para BaseAdapter y su clase secundaria.

Por lo tanto, el adaptador no es aceptado. ¿Hay alguna otra manera? Podría usar el adaptador RecyclerView con AutoCompleteTextView. ¿La solución ArrayListAdapter o BaseAdapter es la única para AutCompleteTextView?


AutoCompleteTextView requiere un ListAdapter que también sea ListAdapter . Puede implementar esto teniendo una clase contenedora alrededor de un RecyclerView.Adapter que amplíe BaseAdapter y delegue llamadas al RecyclerView.Adapter subyacente. Aquí hay un ejemplo:

public class RecyclerBaseAdapter<VH extends RecyclerView.ViewHolder> extends BaseAdapter implements Filterable { private final RecyclerView.Adapter<VH> mAdapter; public RecyclerBaseAdapter(RecyclerView.Adapter<VH> adapter) { mAdapter = adapter; } @Override public int getItemViewType(int position) { return mAdapter.getItemViewType(position); } @Override public int getCount() { return mAdapter.getItemCount(); } @Override public Object getItem(int position) { // not supported return null; } @Override public long getItemId(int position) { return mAdapter.getItemId(position); } @SuppressWarnings("unchecked") @Override public View getView(int position, View convertView, ViewGroup parent) { VH holder; if (convertView == null) { holder = mAdapter.createViewHolder(parent, getItemViewType(position)); convertView = holder.itemView; convertView.setTag(holder); } else { holder = (VH) convertView.getTag(); } mAdapter.bindViewHolder(holder, position); return holder.itemView; } @Override public Filter getFilter() { // TODO: return a real filter return null; } }

Ahora puede hacer mAutoCompleteTextView.setAdapter(new RecyclerBaseAdapter(mRecyclerViewAdapter)) . Solo probé esto en un Spinner , pero también debería funcionar para tu caso.