package com.mcxtzhang.databindingdemo.recyclerview.multype;
import android.content.Context;
import android.databinding.DataBindingUtil;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.android.databinding.library.baseAdapters.BR;
import com.mcxtzhang.databindingdemo.R;
import com.mcxtzhang.zxtcommonlib.databinding.base.BaseBindingVH;
import java.util.List;
/**
* 介绍:
* 作者:zhangxutong
* 邮箱:mcxtzhang@163.com
* CSDN:http://blog.csdn.net/zxt0601
* 时间: 16/09/25.
*/
public class MulTypeAdapter<K> extends RecyclerView.Adapter<BaseBindingVH> {
private Context mContext;
private List<MulTypeBean> mDatas;
private LayoutInflater mInfalter;
public MulTypeAdapter(Context mContext, List<MulTypeBean> mDatas) {
this.mContext = mContext;
this.mDatas = mDatas;
this.mInfalter = LayoutInflater.from(mContext);
}
@Override
public int getItemViewType(int position) {
return mDatas.get(position).getRole();
}
@Override
public BaseBindingVH onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case 1:
return new BaseBindingVH(DataBindingUtil.inflate(mInfalter, R.layout.item_mul_type_1, parent, false));
case 0:
return new BaseBindingVH(DataBindingUtil.inflate(mInfalter, R.layout.item_first_rv, parent, false));
}
return null;
}
@Override
public void onBindViewHolder(BaseBindingVH holder, int position) {
switch (getItemViewType(position)) {
case 1:
holder.getBinding().setVariable(BR.data, mDatas.get(position));
break;
case 0:
holder.getBinding().setVariable(BR.bean, mDatas.get(position));
break;
}
}
@Override
public int getItemCount() {
return null != mDatas ? mDatas.size() : 0;
}
}