Ami*_*ari 13 autocompletetextview android-recyclerview
我有条件需要实施自动建议.为此,我一直在尝试使用自定义的RecyclerView.Adapter.但问题是,AutoCompleteTextView似乎是针对BaseAdapter及其子类.
因此,不接受适配器.还有其他方法,我可以使用RecyclerView适配器与AutoCompleteTextView.是否为AutCompleteTextView的ArrayListAdapter或BaseAdapter唯一解决方案?
AutoCompleteTextView要求ListAdapter,这也是Filterable.您可以通过围绕RecyclerView.Adapter扩展的包装类来实现这一点BaseAdapter,并将调用委托给底层RecyclerView.Adapter.这是一个例子:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
现在你可以做到mAutoCompleteTextView.setAdapter(new RecyclerBaseAdapter(mRecyclerViewAdapter)).我只测试了这个Spinner,但它也适用于你的情况.
| 归档时间: |
|
| 查看次数: |
4829 次 |
| 最近记录: |