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