RecyclerView多条目加载

本文详细介绍了一种基于RecyclerView的头条新闻适配器的实现方式,通过不同类型的布局来展示头条新闻的内容,包括图片和标题等信息。文章还介绍了如何使用Glide库加载图片,以及如何根据位置动态改变视图类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.example.zhaoday1_5.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
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.TextView;

import com.bumptech.glide.Glide;
import com.example.zhaoday1_5.R;
import com.example.zhaoday1_5.bean.TouTiaoBean;

import java.util.List;

import butterknife.BindView;

public class MyTouAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    private Context context;
    private TouTiaoBean touTiaoBean;
    private List<TouTiaoBean.ResultBean.DataBean> list;

    private final int TYPRONE = 1;
    private final int TYPETWO = 2;

    public MyTouAdapter(Context context, TouTiaoBean touTiaoBean) {
        this.context = context;
        this.touTiaoBean = touTiaoBean;
        list = touTiaoBean.getResult().getData();
    }

    //判断类型
    @Override
    public int getItemViewType(int position) {
        if (position % 2 == 0) {
            return TYPRONE;
        } else if (position % 2 == 1) {
            return TYPETWO;
        } else {
            return super.getItemViewType(position);
        }

    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        //绑定视图
        if (viewType == TYPRONE) {
            View view = LayoutInflater.from(context).inflate(R.layout.mytouadapter, parent, false);
            MyViewHolder holder = new MyViewHolder(view);
            return holder;
        } else if (viewType == TYPETWO) {
            View views = LayoutInflater.from(context).inflate(R.layout.mytouadapters, parent, false);
            MyViewHolders holders = new MyViewHolders(views);
            return holders;
        }
        return null;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        if (holder instanceof MyViewHolder) {
            String[] images = touTiaoBean.getResult().getData().get(position).getThumbnail_pic_s().split("\\|");
            Glide.with(context).load(images[0]).into(((MyViewHolder) holder).images);
            ((MyViewHolder) holder).titles.setText(touTiaoBean.getResult().getData().get(position).getTitle());
        }
        if (holder instanceof MyViewHolders) {
            String[] imagese = touTiaoBean.getResult().getData().get(position).getThumbnail_pic_s().split("\\|");
            Glide.with(context).load(imagese[0]).into(((MyViewHolders) holder).imagewss);
            String[] imageses = touTiaoBean.getResult().getData().get(position).getThumbnail_pic_s().split("\\|");
            Glide.with(context).load(imageses[0]).into(((MyViewHolders) holder).imagewsse);
            ((MyViewHolders) holder).tetse.setText(touTiaoBean.getResult().getData().get(position).getAuthor_name());
        }
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public static class MyViewHolder extends RecyclerView.ViewHolder {
        @BindView(R.id.images)
        ImageView images;
        @BindView(R.id.titles)
        TextView titles;

        public MyViewHolder(View itemView) {
            super(itemView);
            images = itemView.findViewById(R.id.images);
            titles = itemView.findViewById(R.id.titles);
        }
    }

    public static class MyViewHolders extends RecyclerView.ViewHolder {
        @BindView(R.id.imagewss)
        ImageView imagewss;
        @BindView(R.id.tetse)
        TextView tetse;
        @BindView(R.id.imagewsse)
        ImageView imagewsse;

        public MyViewHolders(View itemView) {
            super(itemView);
            imagewss = itemView.findViewById(R.id.imagewss);
            tetse = itemView.findViewById(R.id.tetse);
            imagewsse=itemView.findViewById(R.id.imagewsse);
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值