package com.chad.baserecyclerviewadapterhelper.adapter; import android.databinding.DataBindingUtil; import android.databinding.ViewDataBinding; import android.view.View; import android.view.ViewGroup; import com.chad.baserecyclerviewadapterhelper.BR; import com.chad.baserecyclerviewadapterhelper.R; import com.chad.baserecyclerviewadapterhelper.entity.Movie; import com.chad.baserecyclerviewadapterhelper.entity.MoviePresenter; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import java.util.List; /** * Created by luoxiongwen on 16/10/24. */ public class DataBindingUseAdapter extends BaseQuickAdapter<Movie, DataBindingUseAdapter.MovieViewHolder> { private MoviePresenter mPresenter; public DataBindingUseAdapter(int layoutResId, List<Movie> data) { super(layoutResId, data); mPresenter = new MoviePresenter(); } @Override protected void convert(MovieViewHolder helper, Movie item) { ViewDataBinding binding = helper.getBinding(); binding.setVariable(BR.movie, item); binding.setVariable(BR.presenter, mPresenter); binding.executePendingBindings(); switch (helper.getLayoutPosition() % 2) { case 0: helper.setImageResource(R.id.iv, R.mipmap.m_img1); break; case 1: helper.setImageResource(R.id.iv, R.mipmap.m_img2); break; } } /* @Override protected MovieViewHolder createBaseViewHolder(View view) { return new MovieViewHolder(view); } */ @Override protected View getItemView(int layoutResId, ViewGroup parent) { ViewDataBinding binding = DataBindingUtil.inflate(mLayoutInflater, layoutResId, parent, false); if (binding == null) { return super.getItemView(layoutResId, parent); } View view = binding.getRoot(); view.setTag(R.id.BaseQuickAdapter_databinding_support, binding); return view; } public class MovieViewHolder extends BaseViewHolder { public MovieViewHolder(View view) { super(view); } public ViewDataBinding getBinding() { return (ViewDataBinding) itemView.getTag(R.id.BaseQuickAdapter_databinding_support); } } }