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);
 | |
| 
 | |
|         }
 | |
|     }
 | |
| } |