private Context mContext; private SearchDataListener searchListener; private int viewType = 1; private int TypeSKU = 1; private int TypeNAME = 2; public SearchDataAdapter(Context context) { super(context); mContext = context; } @Override public int getItemViewType(int position) { return viewType; } public void setViewType(int viewType) { this.viewType = viewType; } @Override public RecyclerView.ViewHolder onMyCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == TypeSKU) { View view = LayoutInflater.from(mContext).inflate(R.layout.item_search_data, parent, false); return new SkuSearchViewHolder(view); } else { View view = LayoutInflater.from(mContext).inflate(R.layout.item_search_data, parent, false); return new NameSearchViewHolder(view); } } @Override public void onMyBindViewHolder(RecyclerView.ViewHolder holder, final int position) { if (holder instanceof SkuSearchViewHolder) { SkuSearchViewHolder skuSearchViewHolder = (SkuSearchViewHolder) holder; skuSearchViewHolder.ttvSearchText.setText(getList().get(position).getSku()); } else { NameSearchViewHolder nameSearchViewHolder = (NameSearchViewHolder) holder; nameSearchViewHolder.ttvSearchText.setText(getList().get(position).getName() ); } } public void setSearchListener(SearchDataListener searchListener) { this.searchListener = searchListener; } public interface SearchDataListener { void searchClick(String text); } class SkuSearchViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.iv_search_icon) ImageView ivSearchIcon; SkuSearchViewHolder(View view) { super(view); ButterKnife.bind(this, view); } } class NameSearchViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.iv_search_icon) ImageView ivSearchIcon; NameSearchViewHolder(View view) { super(view); ButterKnife.bind(this, view); } }
以上是整个适配器里面的设置,下面是在使用adapter的时候进行设置
adapter.setViewType(1);
在使用的时候调用这个这个setviewtype方法就行了