废话不多说,直接上Adapter的代码
package com.example.week3_demo1;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Lenovo on 2017/10/21.
*/
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context context;
List<Bean.DataBean> list = new ArrayList<>();
private final int TYPE_IMG = 0, TYPE_CONTENT = 1;
private onRecycleLisenter lisenter = null;
public MyAdapter(Context context) {
this.context = context;
}
public void addData(List<Bean.DataBean> list) {
this.list.addAll(list);
notifyDataSetChanged();
}
public void updateData(List<Bean.DataBean> list) {
this.list.clear();
addData(list);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_IMG) {
View view1 = View.inflate(context, R.layout.img_item, null);
final MyViewHolder1 holder1 = new MyViewHolder1(view1);
if (lisenter != null) {
view1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lisenter.onItemClickLisenter(v, holder1.getLayoutPosition());
}
});
view1.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
lisenter.onItemLongClickLisenter(v, holder1.getLayoutPosition());
return true;
}
});
}
return holder1;
} else {
View view2 = View.inflate(context, R.layout.content_item, null);
final MyViewHolder2 holder2 = new MyViewHolder2(view2);
if (lisenter != null) {
view2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lisenter.onItemClickLisenter(v, holder2.getLayoutPosition());
}
});
view2.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
lisenter.onItemLongClickLisenter(v, holder2.getLayoutPosition());
return true;
}
});
}
return holder2;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
final Bean.DataBean dataBean = list.get(position);
if (holder instanceof MyViewHolder1) {
Glide.with(context).load(dataBean.images.split("\\|")[0]).into(((MyViewHolder1) holder).img_iv);
((MyViewHolder1) holder).img_tv.setText(dataBean.subhead);
} else if (holder instanceof MyViewHolder2) {
((MyViewHolder2) holder).content_tv.setText(dataBean.title);
Glide.with(context).load(dataBean.images.split("\\|")[0]).into(((MyViewHolder2) holder).content_iv1);
Glide.with(context).load(dataBean.images.split("\\|")[1]).into(((MyViewHolder2) holder).content_iv2);
Glide.with(context).load(dataBean.images.split("\\|")[2]).into(((MyViewHolder2) holder).content_iv3);
}
}
@Override
public int getItemViewType(int position) {
if (position % 2 == 0) {
return TYPE_IMG;
}
return TYPE_CONTENT;
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class MyViewHolder1 extends RecyclerView.ViewHolder {
private final TextView img_tv;
private final ImageView img_iv;
public MyViewHolder1(View itemView) {
super(itemView);
img_tv = itemView.findViewById(R.id.img_tv);
img_iv = itemView.findViewById(R.id.img_iv);
}
}
class MyViewHolder2 extends RecyclerView.ViewHolder {
private final TextView content_tv;
private final ImageView content_iv1;
private final ImageView content_iv2;
private final ImageView content_iv3;
public MyViewHolder2(View itemView) {
super(itemView);
content_tv = itemView.findViewById(R.id.content_tv);
content_iv1 = itemView.findViewById(R.id.content_iv1);
content_iv2 = itemView.findViewById(R.id.content_iv2);
content_iv3 = itemView.findViewById(R.id.content_iv3);
}
}
//暴露的方法
public void setLisenter(onRecycleLisenter lisenter) {
this.lisenter = lisenter;
}
}