//在Activity中
//设置适配器
ShowAdapter showAdapter = new ShowAdapter(Main2Activity.this, list);
recycle1.setAdapter(showAdapter);
//在适配器中
public class ShowAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int TYPE_ONE=1;
private static final int TYPE_TWO=2;
private static final int TYPE_THREE=3;
private Context context;
private List<JsonBean.DataBean> list;
//点击事件的接口回调
OnItemLongClickListener onItemLongClickListener;
public interface OnItemLongClickListener{
public void onItemLongClickListener(View v,int position);
}
public void setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener) {
this.onItemLongClickListener = onItemLongClickListener;
}
public ShowAdapter(Context context, List<JsonBean.DataBean> list) {
this.context = context;
this.list = list;
}
public void setList(List<JsonBean.DataBean> lists) {
if (list!=null){
this.list = lists;
}
notifyDataSetChanged();
}
public void addList(List<JsonBean.DataBean> lists){
if (list!=null){
list.addAll(lists);
}
notifyDataSetChanged();
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (i==TYPE_ONE){
View view = LayoutInflater.from(context).inflate(R.layout.recycle1, viewGroup, false);
return new ViewHolderOne(view);
}else if (i==TYPE_TWO){
View view = LayoutInflater.from(context).inflate(R.layout.recycle2, viewGroup, false);
return new ViewHolderTwo(view);
}else {
View view = LayoutInflater.from(context).inflate(R.layout.recycle3, viewGroup, false);
return new ViewHolderThree(view);
}
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
int itemViewType = getItemViewType(i);
switch (itemViewType){
case TYPE_ONE:
ViewHolderOne viewHolderOne= (ViewHolderOne) viewHolder;
viewHolderOne.text_name.setText(list.get(i).getTitle());
viewHolderOne.text_time.setText(list.get(i).getDate());
String imagesString = list.get(i).getThumbnail_pic_s();
String[] imagesStr = imagesString.split("\\|");
Glide.with(context).load(imagesStr[0]).into(viewHolderOne.image_icon);
break;
case TYPE_TWO:
ViewHolderTwo viewHolderTwo= (ViewHolderTwo) viewHolder;
viewHolderTwo.text_name.setText(list.get(i).getTitle());
viewHolderTwo.text_time.setText(list.get(i).getDate());
Glide.with(context).load(list.get(i).getThumbnail_pic_s()).into(viewHolderTwo.image_icon1);
Glide.with(context).load(list.get(i).getThumbnail_pic_s02()).into(viewHolderTwo.image_icon2);
Glide.with(context).load(list.get(i).getThumbnail_pic_s03()).into(viewHolderTwo.image_icon3);
break;
case TYPE_THREE:
ViewHolderThree viewHolderThree= (ViewHolderThree) viewHolder;
viewHolderThree.text_name.setText(list.get(i).getTitle());
viewHolderThree.text_time.setText(list.get(i).getDate());
break;
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemLongClickListener.onItemLongClickListener(v,i);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
@Override
public int getItemViewType(int position) {
if (position%3==1){
return TYPE_ONE;
}else if (position%3==2){
return TYPE_TWO;
}else {
return TYPE_THREE;
}
}
//ViewHolder
class ViewHolderOne extends RecyclerView.ViewHolder {
private final TextView text_name;
private final TextView text_time;
private final ImageView image_icon;
public ViewHolderOne(@NonNull View itemView) {
super(itemView);
text_name = itemView.findViewById(R.id.text_name);
text_time = itemView.findViewById(R.id.text_time);
image_icon = itemView.findViewById(R.id.image_icon);
}
}
class ViewHolderTwo extends RecyclerView.ViewHolder {
private final TextView text_name;
private final TextView text_time;
private final ImageView image_icon1;
private final ImageView image_icon2;
private final ImageView image_icon3;
public ViewHolderTwo(@NonNull View itemView) {
super(itemView);
text_name = itemView.findViewById(R.id.text_name_recycle2);
text_time = itemView.findViewById(R.id.text_time_recycle2);
image_icon1 = itemView.findViewById(R.id.image_icon_recycle2_1);
image_icon2 = itemView.findViewById(R.id.image_icon_recycle2_2);
image_icon3 = itemView.findViewById(R.id.image_icon_recycle2_3);
}
}
class ViewHolderThree extends RecyclerView.ViewHolder {
private final TextView text_name;
private final TextView text_time;
public ViewHolderThree(@NonNull View itemView) {
super(itemView);
text_name = itemView.findViewById(R.id.text_name_recycle3);
text_time = itemView.findViewById(R.id.text_time_recycle3);
}
}
}