package com.loopeer.codereader.ui.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import java.util.ArrayList; import java.util.List; public abstract class RecyclerViewAdapter<T> extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private final Context mContext; private final LayoutInflater mInflater; protected List<T> mData; public RecyclerViewAdapter(Context context) { this.mContext = context; this.mInflater = LayoutInflater.from(context); this.mData = new ArrayList<>(); } public void updateData(List<T> data) { this.setData(data); this.notifyDataSetChanged(); } public void setData(List<T> data) { this.mData.clear(); if (data != null) { this.mData.addAll(data); } } public LayoutInflater getLayoutInflater() { return this.mInflater; } public Context getContext() { return this.mContext; } public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { T data = this.getItem(position); this.bindView(data, position, holder); } public abstract void bindView(T var1, int var2, RecyclerView.ViewHolder var3); public T getItem(int position) { return this.mData.get(position); } public int getItemCount() { return this.mData == null ? 0 : this.mData.size(); } }