249 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			249 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | 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<BandanAdapter.MyViewHolder> { | ||
|  |     private final int EMPTY_VIEW = 1; | ||
|  |     private final int PROGRESS_VIEW = 2; | ||
|  |     private final int IMAGE_VIEW = 3; | ||
|  | 
 | ||
|  |     private Context context; | ||
|  |     private List<NovelBlock> mDatas = new ArrayList<NovelBlock>(); | ||
|  |     private OnItemClickListener mOnItemClickLitener; | ||
|  |     private int listItemID; | ||
|  |     public BandanAdapter(Context context, List<NovelBlock> 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<NovelBlock> 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); | ||
|  | 
 | ||
|  |         } | ||
|  |     } | ||
|  | } |