package com.github.miao1007.animewallpaper.ui.adapter; import android.support.annotation.IntRange; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import java.util.List; /** * Created by leon on 1/14/16. */ public abstract class BaseAdapter<T> extends RecyclerView.Adapter { static OnItemClickListener onItemClickListener; private OnLoadMoreListener loadMoreListener; private int page = 1; List<T> data; BaseAdapter(List<T> data) { this.data = data; } public List<T> getData() { return data; } public void setData(List<T> data) { this.data = data; } public void setItemClickListener(OnItemClickListener onItemClickListener) { BaseAdapter.onItemClickListener = onItemClickListener; } public void setLoadMoreListener(OnLoadMoreListener loadMoreListener) { this.loadMoreListener = loadMoreListener; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return null; } @Override final public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { //check for last item if ((position >= getItemCount() - 1)) { page++; loadMoreListener.loadMore(page); } onBindItemViewHolder(holder, position); } abstract void onBindItemViewHolder(RecyclerView.ViewHolder holder, int position); @Override public int getItemCount() { return data.size(); } public interface OnItemClickListener { void onItemClick(View v, @IntRange(from = 0) int position); } public interface OnLoadMoreListener { void loadMore(int page); } }