DataBoundAdapter.java revision fead9ca09b117136b35bc5bf137340a754f9eddd
1package com.android.example.bindingdemo; 2 3import android.support.v7.widget.RecyclerView; 4import android.view.ViewGroup; 5 6import android.databinding.DataBindingUtil; 7import android.databinding.ViewDataBinding; 8 9abstract public class DataBoundAdapter<T extends ViewDataBinding> 10 extends RecyclerView.Adapter<DataBoundAdapter.DataBoundViewHolder<T>> { 11 final int mLayoutId; 12 final Class<T> mBinderInterface; 13 public DataBoundAdapter(int mLayoutId, Class<T> mBinderInterface) { 14 this.mLayoutId = mLayoutId; 15 this.mBinderInterface = mBinderInterface; 16 } 17 18 @Override 19 public DataBoundAdapter.DataBoundViewHolder<T> onCreateViewHolder(ViewGroup viewGroup, int type) { 20 T binder = DataBindingUtil.inflate(viewGroup.getContext(), mLayoutId, viewGroup, false); 21 return new DataBoundViewHolder(binder); 22 } 23 24 static class DataBoundViewHolder<T extends ViewDataBinding> extends RecyclerView.ViewHolder { 25 public final T dataBinder; 26 public DataBoundViewHolder(T mViewBinder) { 27 super(mViewBinder.getRoot()); 28 this.dataBinder = mViewBinder; 29 } 30 } 31} 32