package com.loopeer.cardstack; import android.content.Context; import android.view.LayoutInflater; import java.util.ArrayList; import java.util.List; public abstract class StackAdapter<T> extends CardStackView.Adapter<CardStackView.ViewHolder> { private final Context mContext; private final LayoutInflater mInflater; private List<T> mData; public StackAdapter(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; } @Override public void onBindViewHolder(CardStackView.ViewHolder holder, int position) { T data = this.getItem(position); this.bindView(data, position, holder); } public abstract void bindView(T data, int position, CardStackView.ViewHolder holder); @Override public int getItemCount() { return mData.size(); } public T getItem(int position) { return this.mData.get(position); } }