XBanner图片轮播,XRecyclerView列表

本文详细介绍了一个基于Fragment的安卓应用实例,展示了如何使用RecyclerView进行数据展示,包括自定义适配器、处理不同类型的列表项及与服务器交互获取数据的过程。

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

public class Frag01 extends Fragment implements ShowView {
private XBanner banner;
private XRecyclerView recyclerView;
private String PicUrl = “http://172.17.8.100/small/commodity/v1/bannerShow”;
private String ShowUrl = “http://172.17.8.100/small/commodity/v1/commodityList”;
private ShowPresenterIml presenter;
private RecyclerAdapter adapter;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.frag01, container, false);
    banner = view.findViewById(R.id.banner);
    recyclerView = view.findViewById(R.id.recycler);
    presenter = new ShowPresenterIml(new ShowModelIml(), this);
    return view;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    //设置图片
    banner.loadImage(new XBanner.XBannerAdapter() {
        @Override
        public void loadBanner(XBanner banner, Object model, View view, int position) {
            MyResult result = (MyResult) model;
            Glide.with(getActivity()).load(result.getImageUrl()).into((ImageView) view);
        }
    });
    //创建布局适配器
    LinearLayoutManager manager = new LinearLayoutManager(getActivity());
    manager.setOrientation(LinearLayoutManager.VERTICAL);
    //设置布局适配器
    recyclerView.setLayoutManager(manager);
    //创建适配器
    adapter = new RecyclerAdapter(getActivity());
    //设置适配器
    recyclerView.setAdapter(adapter);
    //获取图片
    presenter.Showget(0, PicUrl);
    presenter.Showget(1, ShowUrl);

}

@Override
public void success(int type, String data) {
    if (type == 0) {
        PicBean picbean = new Gson().fromJson(data, PicBean.class);
        List<MyResult> results = picbean.getResult();
        banner.setBannerData(results);
    } else if (type == 1) {
        JavaBean javaBean = new Gson().fromJson(data, JavaBean.class);
        ResultBean result = javaBean.getResult();
        Rxxp rxxp = result.getRxxp();
        Mlss mlss = result.getMlss();
        Pzsh pzsh = result.getPzsh();
        List<AllBean> list = new ArrayList<>();
        list.add(rxxp);
        list.add(mlss);
        list.add(pzsh);
        adapter.setData(list);
    }
}

@Override
public void fail(String error) {
    Toast.makeText(getActivity(), error, Toast.LENGTH_SHORT).show();
}

@Override
public void onDestroy() {
    super.onDestroy();
    presenter.destory();
}

}

**

Recycleradapter

**
public class RecyclerAdapter extends RecyclerView.Adapter {

private Context context;
private List<AllBean> list = new ArrayList<>();

public RecyclerAdapter(Context context) {
    this.context = context;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    int type = getItemViewType(i);
    RecyclerView.ViewHolder holder = null;
    switch (type) {
        case 0:
            //热销新品
            View view = View.inflate(context, R.layout.adapter_rxxp, null);
            holder = new RxxpViewHolder(view);
            break;
        case 1:
            //魔丽时尚
            View view1 = View.inflate(context, R.layout.adapter_mlss, null);
            holder = new MlssViewHolder(view1);
            break;
        case 2:
            //品质生活
            View view2 = View.inflate(context, R.layout.adapter_pzsh, null);
            holder = new PzshViewHolder(view2);
            break;
    }
    return holder;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    if (viewHolder instanceof RxxpViewHolder && list.get(i) instanceof Rxxp) {
        Log.i("RecyclerAdapter", list.get(i).toString());
        RxxpViewHolder holder = (RxxpViewHolder) viewHolder;
        Rxxp rxxp = (Rxxp) list.get(i);
        holder.title.setText(rxxp.getName());
        //创建适配器
        RxxpAdapter adapter = new RxxpAdapter(context);
        //创建布局管理器
        LinearLayoutManager manager = new LinearLayoutManager(context);
        manager.setOrientation(LinearLayoutManager.HORIZONTAL);
        holder.recyclerView.setLayoutManager(manager);
        holder.recyclerView.setAdapter(adapter);
        List<Bean> list = rxxp.getCommodityList();
        adapter.setData(list);
    } else if (viewHolder instanceof MlssViewHolder && list.get(i) instanceof Mlss) {
        Log.i("RecyclerAdapter", list.get(i).toString());
        MlssViewHolder holder = (MlssViewHolder) viewHolder;
        Mlss mlss = (Mlss) list.get(i);
        holder.title.setText(mlss.getName());
        //创建适配器
        MlssAdapter adapter = new MlssAdapter(context);

        //创建布局管理器
        LinearLayoutManager manager = new LinearLayoutManager(context);
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        holder.recyclerView.setLayoutManager(manager);
        holder.recyclerView.setAdapter(adapter);
        List<Bean> al = mlss.getCommodityList();
        adapter.setData(al);


    } else if (viewHolder instanceof PzshViewHolder && list.get(i) instanceof Pzsh) {
        Log.i("RecyclerAdapter", list.get(i).toString());
        PzshViewHolder holder = (PzshViewHolder) viewHolder;
        Pzsh pzsh = (Pzsh) list.get(i);
        holder.title.setText(pzsh.getName());
        //创建适配器
        PzshAdapter adapter = new PzshAdapter(context);

        //创建布局管理器
        GridLayoutManager manager = new GridLayoutManager(context, 2);
        holder.recyclerView.setLayoutManager(manager);
        holder.recyclerView.setAdapter(adapter);
        List<Bean> al = pzsh.getCommodityList();
        adapter.setData(al);
    }
}

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

public void setData(List<AllBean> list) {
    this.list = list;
    notifyDataSetChanged();
}

@Override
public int getItemViewType(int position) {
    if (list.get(position) instanceof Rxxp) {
        return 0;
    } else if (list.get(position) instanceof Mlss) {
        return 1;
    } else {
        return 2;
    }

}

public class RxxpViewHolder extends RecyclerView.ViewHolder {

    TextView title;
    RecyclerView recyclerView;

    public RxxpViewHolder(@NonNull View itemView) {
        super(itemView);
        title = (TextView) itemView.findViewById(R.id.tv_title);
        recyclerView = (RecyclerView) itemView.findViewById(R.id.rxxp_recycler);
    }
}

public class PzshViewHolder extends RecyclerView.ViewHolder {

    TextView title;
    RecyclerView recyclerView;

    public PzshViewHolder(@NonNull View itemView) {
        super(itemView);
        title = (TextView) itemView.findViewById(R.id.tv_title);
        recyclerView = (RecyclerView) itemView.findViewById(R.id.recycler);
    }
}

public class MlssViewHolder extends RecyclerView.ViewHolder {

    TextView title;
    RecyclerView recyclerView;

    public MlssViewHolder(@NonNull View itemView) {
        super(itemView);
        title = (TextView) itemView.findViewById(R.id.home_list_01_text);
        recyclerView = (RecyclerView) itemView.findViewById(R.id.recycler_mlss);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值