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