package com.novelbook.android.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.novelbook.android.db.Novel; import com.novelbook.android.db.BookDan; import com.novelbook.android.utils.OnItemClickListener; import java.util.List; public class ShudanAdapter extends RecyclerView.Adapter< MyViewHolder> { private final int EMPTY_VIEW = 1; private final int PROGRESS_VIEW = 2; private final int IMAGE_VIEW = 3; private Context context; private List mDatas ; private OnItemClickListener mOnItemClickListener; private int listItemID; private List mBooks; public ShudanAdapter(Context context, List mBooks, int listItemID, OnItemClickListener clickLitener) { this.context = context; this.mDatas = mBooks; this.mOnItemClickListener = clickLitener; this.listItemID = listItemID; } public ShudanAdapter(Context context, OnItemClickListener clickLitener) { this.context = context; this.mOnItemClickListener = clickLitener; } public void setListener(OnItemClickListener clickLitener){ this.mOnItemClickListener = clickLitener; } @Override public int getItemViewType(int position) { if (mDatas.size() == 0) { return EMPTY_VIEW; } else if (mDatas.get(position) == null) { return PROGRESS_VIEW; } else { return super.getItemViewType(position); } } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( context).inflate(listItemID, parent, false)); return holder; } public void setParameters(List mDatas, int listItemID) { this.mDatas = mDatas; this.listItemID = listItemID; } public void setOnItemClickLitener(OnItemClickListener mOnItemClickLitener) { this.mOnItemClickListener = mOnItemClickLitener; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tvTitle.setText(mDatas.get(position).getName()); if (holder.tvAuthor != null) holder.tvAuthor.setText(mDatas.get(position).getAuthor()); if (holder.tvDesc != null) holder.tvDesc.setText(mDatas.get(position).getDesc()); if(holder.tvNum!=null)holder.tvNum.setText("999"); // 如果设置了回调,则设置点击事件 if (mOnItemClickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickListener.onItemClick(holder.itemView, pos); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickListener.onItemLongClick(holder.itemView, pos); return false; } }); } } @Override public int getItemCount() { return mDatas.size(); } public void addData(int position) { // mDatas.add(position, "Insert One"); notifyItemInserted(position); } public void removeData(int position) { mDatas.remove(position); notifyItemRemoved(position); } }