122 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			122 lines
		
	
	
		
			3.6 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 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<BookDan> mDatas  ; | ||
|  |     private OnItemClickListener mOnItemClickListener; | ||
|  |     private int listItemID; | ||
|  | 
 | ||
|  |     private List<Novel> mBooks; | ||
|  | 
 | ||
|  |     public ShudanAdapter(Context context, List<BookDan> 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<BookDan> 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); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  | } |