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 android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.novelbook.android.R; import com.novelbook.android.bean.NovelBlock; import com.novelbook.android.db.Novel; import com.novelbook.android.utils.ImageUtil; import com.novelbook.android.utils.OnItemClickListener; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; public class BandanAdapter extends RecyclerView.Adapter { private final int EMPTY_VIEW = 1; private final int PROGRESS_VIEW = 2; private final int IMAGE_VIEW = 3; private Context context; private List mDatas = new ArrayList(); private OnItemClickListener mOnItemClickLitener; private int listItemID; public BandanAdapter(Context context, List mDatas, int listItemID, OnItemClickListener clickLitener) { this.context = context; this.mDatas = mDatas; this.mOnItemClickLitener = clickLitener; this.listItemID = listItemID; } public BandanAdapter(Context context, OnItemClickListener clickLitener) { this.context = context; this.mOnItemClickLitener = 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.mOnItemClickLitener = mOnItemClickLitener; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.ll1.setVisibility(View.GONE); holder.ll2.setVisibility(View.GONE); holder.ll3.setVisibility(View.GONE); NovelBlock nb = mDatas.get(position); holder.tvCateName.setText(nb.getName()); if(nb==null){return;} if(nb.getNs().size()>0) { Novel novel = nb.getNs().get(0); if(novel!=null) { holder.ll1.setVisibility(View.VISIBLE); holder.tvTitle.setText(novel.getName()); holder.tvAuthor.setText(novel.getAuthor()); holder.tvCate.setText(novel.getNovelType()); holder.tvDesc.setText(novel.getDesc()); ImageUtil.loadImage(context,novel.getCover(),holder.imageView); } } if(nb.getNs().size()>1) { Novel novel = nb.getNs().get(1); if(novel!=null) { holder.ll2.setVisibility(View.VISIBLE); holder.tvTitle2.setText(novel.getName()); holder.tvAuthor2.setText(novel.getAuthor()); holder.tvCate2.setText(novel.getNovelType()); holder.tvDesc2.setText(novel.getDesc()); ImageUtil.loadImage(context,novel.getCover(),holder.imageView2); } } if(nb.getNs().size()>2) { Novel novel = nb.getNs().get(2); if(novel!=null) { holder.ll3.setVisibility(View.VISIBLE); holder.tvTitle3.setText(novel.getName()); holder.tvAuthor3.setText(novel.getAuthor()); holder.tvCate3.setText(novel.getNovelType()); holder.tvDesc3.setText(novel.getDesc()); ImageUtil.loadImage(context,novel.getCover(),holder.imageView3); } } // 如果设置了回调,则设置点击事件 if (mOnItemClickLitener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() //show more cate paihang { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemClick(holder.itemView, pos); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemLongClick(holder.itemView, pos); return false; } }); holder.ll1.setOnClickListener(new View.OnClickListener() { //show bookdetail @Override public void onClick(View v) { int pos = position; mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,0); } }); holder.ll2.setOnClickListener(new View.OnClickListener() { //show bookdetail @Override public void onClick(View v) { int pos = position; mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,1); } }); holder.ll3.setOnClickListener(new View.OnClickListener() { //show bookdetail @Override public void onClick(View v) { int pos = position; mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,2); } }); } } @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); } class MyViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.title) TextView tvTitle; @BindView(R.id.author) TextView tvAuthor; @BindView(R.id.category) TextView tvCate; @BindView(R.id.desc) TextView tvDesc; @BindView(R.id.title2) TextView tvTitle2; @BindView(R.id.author2) TextView tvAuthor2; @BindView(R.id.category2) TextView tvCate2; @BindView(R.id.desc2) TextView tvDesc2; @BindView(R.id.title3) TextView tvTitle3; @BindView(R.id.author3) TextView tvAuthor3; @BindView(R.id.category3) TextView tvCate3; @BindView(R.id.desc3) TextView tvDesc3; @BindView(R.id.tvCateName) TextView tvCateName; @BindView(R.id.ll1) LinearLayout ll1; @BindView(R.id.ll2) LinearLayout ll2; @BindView(R.id.ll3) LinearLayout ll3; @BindView(R.id.imageView) ImageView imageView; @BindView(R.id.imageView2) ImageView imageView2; @BindView(R.id.imageView3) ImageView imageView3; public MyViewHolder(View view) { super(view); ButterKnife.bind(this, view); //tvTitle = (TextView) view.findViewById(R.id.title); // tvAuthor = (TextView) view.findViewById(R.id.author); } } }