package com.com.mr_wrong.RecycleViewAdapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import java.util.List; /** * Created by Mr_Wrong on 15/8/19. */ public abstract class AutoRVAdapter extends RecyclerView.Adapter<RVHolder> { public List<?> list; private Context context; public AutoRVAdapter(Context context, List<?> list) { this.list = list; this.context = context; } @Override public RVHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(onCreateViewLayoutID(viewType), null); return new RVHolder(view); } public abstract int onCreateViewLayoutID(int viewType); @Override public void onViewRecycled(final RVHolder holder) { super.onViewRecycled(holder); } @Override public void onBindViewHolder(final RVHolder holder, final int position) { onBindViewHolder(holder.getViewHolder(), position); if (onItemClickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickListener.onItemClick(null, v, holder.getPosition(), holder.getItemId()); } }); } } public abstract void onBindViewHolder(ViewHolder holder, int position); @Override public int getItemCount() { return list.size(); } private AdapterView.OnItemClickListener onItemClickListener; public AdapterView.OnItemClickListener getOnItemClickListener() { return onItemClickListener; } public void setOnItemClickListener(AdapterView.OnItemClickListener onItemClickListener) { this.onItemClickListener = onItemClickListener; } }