美文网首页
Android 电商 四种条目 加轮播图效果

Android 电商 四种条目 加轮播图效果

作者: 49a35d1f708c | 来源:发表于2019-04-07 10:02 被阅读0次
public class HomeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
        implements HotAdapter.HotClicklinsenter,StyleAdapter.StyleClicklinsenter,
        LiveAdapter.LiveClicklinsenter{

    private Context context;
    private HomeBean homeBean;
    private List<BannerBean.ResultBean> bannerbean;
    private final int BANNER = 0;
    private final int HOT = 1;
    private final int STYLE = 2;
    private final int LIVE = 3;
    private List<String> list;

    public HomeAdapter(Context context) {
        this.context = context;
        homeBean=new HomeBean();
        bannerbean = new ArrayList<>();
    }

    public void setHomeBean(HomeBean homeBean) {
        this.homeBean = homeBean;
        notifyDataSetChanged();
    }

    public void setBannerbean(List<BannerBean.ResultBean> bannerbean) {
        list = new ArrayList<>();
        for (BannerBean.ResultBean resultBean : bannerbean) {
            list.add(resultBean.getImageUrl());
        }
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view;
        if (getItemViewType(i)==BANNER){
            view = LayoutInflater.from(context).inflate(R.layout.main_item_banner,viewGroup,false);
            return new ViewHoder_banner(view);
        }else if (getItemViewType(i)==HOT){
            view = LayoutInflater.from(context).inflate(R.layout.main_item_rxsp,viewGroup,false);
            return new ViewHoder_hot(view);
        }else if (getItemViewType(i)==STYLE){
            view = LayoutInflater.from(context).inflate(R.layout.main_item_mlss,viewGroup,false);
            return new ViewHoder_style(view);
        }else {
            view = LayoutInflater.from(context).inflate(R.layout.main_item_pzsh,viewGroup,false);
            return new ViewHoder_live(view);
        }
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int i) {
    if (getItemViewType(i)==BANNER){
        if (list!=null) {
            ((ViewHoder_banner) holder).xBanner.setData(list,null);
            ((ViewHoder_banner) holder).xBanner.setmAdapter(new XBanner.XBannerAdapter() {
                @Override
             public void loadBanner(XBanner banner, Object model, View view, int position) {
              Glide.with(context).load(list.get(position)).into((ImageView) view);
            }
          });
        }
     }else if (getItemViewType(i)==HOT){
      HotAdapter hotAdapter = new HotAdapter(context, homeBean.result.rxxp.commodityList);
       ((ViewHoder_hot)holder).rxsp_rcve.setLayoutManager(new GridLayoutManager(context,3));
            hotAdapter.setHotClicklinsenter(this);
            ((ViewHoder_hot)holder).rxsp_rcve.setAdapter(hotAdapter);
        }else if (getItemViewType(i)==STYLE){
            StyleAdapter styleAdapter = new StyleAdapter(context,homeBean.result.mlss.commodityList);
            ((ViewHoder_style)holder).mlss_rcve.setLayoutManager(new LinearLayoutManager(context));
            styleAdapter.setStyleClicklinsenter(this);
            ((ViewHoder_style)holder).mlss_rcve.setAdapter(styleAdapter);
        }else{
            LiveAdapter liveAdapter = new LiveAdapter(context,homeBean.result.pzsh.commodityList);
            ((ViewHoder_live)holder).pzsh_rcve.setLayoutManager(new GridLayoutManager(context,2));
            liveAdapter.setLiveClicklinsenter(this);
            ((ViewHoder_live)holder).pzsh_rcve.setAdapter(liveAdapter);
        }
    }

    @Override
    public int getItemViewType(int position) {
        if (position==0){
            return BANNER;
        }else if (position==1){
            return HOT;
        }else if (position==2){
            return STYLE;
        }else {
            return LIVE;
        }
    }

    @Override
    public int getItemCount() {
        return homeBean==null?0:4;
    }

    private HomeClicklinsenter homeClicklinsenter;
    public void setHomeClicklinsenter(HomeClicklinsenter homeClicklinsenter) {
        this.homeClicklinsenter = homeClicklinsenter;
    }

    public interface HomeClicklinsenter{
        void homeclick(String homeid);
    }


    @Override
    public void hotclick(String hotid) {
        homeClicklinsenter.homeclick(hotid);
    }


    @Override
    public void liveclick(String hotid) {
        homeClicklinsenter.homeclick(hotid);
    }

    @Override
    public void styleclick(String hotid) {
        homeClicklinsenter.homeclick(hotid);
    }
    

    class ViewHoder_banner extends RecyclerView.ViewHolder{

        private final XBanner xBanner;

        public ViewHoder_banner(View itemView) {
            super(itemView);
            xBanner = itemView.findViewById(R.id.xbanner);
        }
    }

    class ViewHoder_hot extends RecyclerView.ViewHolder{
        private final RecyclerView rxsp_rcve;

        public ViewHoder_hot(View itemView) {
            super(itemView);
            rxsp_rcve = itemView.findViewById(R.id.rxsp_recy);
        }
    }

    class ViewHoder_style extends RecyclerView.ViewHolder{
        private final RecyclerView mlss_rcve;

        public ViewHoder_style(View itemView) {
            super(itemView);
            mlss_rcve = itemView.findViewById(R.id.mlss_recy);
        }
    }

    class ViewHoder_live extends RecyclerView.ViewHolder{
        private final RecyclerView pzsh_rcve;

        public ViewHoder_live(View itemView) {
            super(itemView);
            pzsh_rcve = itemView.findViewById(R.id.pzsh_recy);
        }
    }
}

第二个条目适配器

public class HotAdapter extends RecyclerView.Adapter<HotAdapter.Myvh> {

    private Context context;
    private List<HomeBean.ResultBean.listBean.CommodityListBean> list;

    public HotAdapter(Context context, List<HomeBean.ResultBean.listBean.CommodityListBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public Myvh onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.main_item_rxsp_item,parent,false);
        return new Myvh(view);
    }

    @Override
    public void onBindViewHolder(@NonNull Myvh holder, int position) {

        Glide.with(context).load(list.get(position).masterPic).into(holder.imageView);
        holder.name.setText(list.get(position).commodityName);
        holder.price.setText(list.get(position).price+"");
    }

    @Override
    public int getItemCount() {

        return list.size();
    }

    public class Myvh extends RecyclerView.ViewHolder {

        private final ImageView imageView;
        private final TextView price;
        private final TextView name;

        public Myvh(View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.image1);
            name = itemView.findViewById(R.id.name);
            price = itemView.findViewById(R.id.price);

        }
    }
}

第三个条目适配器

public class StyleAdapter extends RecyclerView.Adapter<StyleAdapter.Myvh> {

    private Context context;
    private List<HomeBean.ResultBean.listBean.CommodityListBean> list;

    public StyleAdapter(Context context, List<HomeBean.ResultBean.listBean.CommodityListBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public Myvh onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.main_item_mlss_item,parent,false);
        return new Myvh(view);
    }

    @Override
    public void onBindViewHolder(@NonNull Myvh holder, int position) {
        Glide.with(context).load(list.get(position).masterPic).into(holder.imageView);
        holder.name.setText(list.get(position).commodityName);
        holder.price.setText(list.get(position).price+"");
    }

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

    public class Myvh extends RecyclerView.ViewHolder {

        private final ImageView imageView;
        private final TextView price;
        private final TextView name;

        public Myvh(View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.image1);
            name = itemView.findViewById(R.id.name);
            price = itemView.findViewById(R.id.price);
        }
    }
}

第四个条目适配器

public class LiveAdapter extends RecyclerView.Adapter<LiveAdapter.Myvh> {

    private Context context;
    private List<HomeBean.ResultBean.listBean.CommodityListBean> list;

    public LiveAdapter(Context context, List<HomeBean.ResultBean.listBean.CommodityListBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public Myvh onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.main_item_pzsh_item,parent,false);
        return new Myvh(view);
    }

    @Override
    public void onBindViewHolder(@NonNull Myvh holder, int position) {
        Glide.with(context).load(list.get(position).masterPic).into(holder.imageView);
        holder.name.setText(list.get(position).commodityName);
        holder.price.setText(list.get(position).price+"");
    }

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

    public class Myvh extends RecyclerView.ViewHolder {

        private final ImageView imageView;
        private final TextView price;
        private final TextView name;

        public Myvh(View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.image1);
            name = itemView.findViewById(R.id.name);
            price = itemView.findViewById(R.id.price);

        }
    }
}

bean类

public class HomeBean {

    public ResultBean result;
    public String message;
    public String status;

    public static class ResultBean {
        public listBean rxxp;
        public listBean pzsh;
        public listBean mlss;

        public static class listBean {
            public int id;
            public String name;
            public List<CommodityListBean> commodityList;

            public static class CommodityListBean {

                public int commodityId;
                public String commodityName;
                public String masterPic;
                public int price;
                public int saleNum;
            }
        }
    }

}

相关文章

  • Android 电商 四种条目 加轮播图效果

    第二个条目适配器 第三个条目适配器 第四个条目适配器 bean类

  • Axure 9.0 制作轮播图

    常用的社交、电商等APP均可看到轮播图效果,本文是关于常见功能-轮播图的制作教程,希望可以给有需要的人一点帮助~ ...

  • Android轮播图控件的实现详解(附GitHub开源链接)

    轮播图在Android开发中是非常常见的控件,一般App的首页广告和电商类App的商品详情图片都会用轮播图来实现。...

  • 高手出品!10条让轮播图转化率更高的设计原则

    一、实际运用中的轮播图 在美国一份针对50家顶级零售电商网站的统计中,发现轮播图被广泛运用于电商网站:PC端52%...

  • 原生JavaScript无缝轮播图特效

    什么是轮播图? 轮播图,图片旋转器,滑片,无论你怎么叫这玩意,它在网络上无处不在。轮播图在电商网站主页上广泛应用,...

  • 2018-03-08

    Android自定义HorizontalScrollView和ImageView实现不一样的轮播图效果 需求效果 ...

  • android轮播图效果

    先上效果图: viewpager+handler+runnableTask实现轮播图效果。可以自动轮播,左右无限滑...

  • 今日优秀案例

    名称:惠生活线上商城 行业:电商 组件: 弹窗,自由面板,公告,轮播图,公众号关注 点评:小程序+电商,创造无限可...

  • javascript-轮播图

    学习了许多的javascript知识,我们今天来做一个应用—轮播图。许多网站上都有轮播图,像淘宝,京东等电商网站的...

  • Android 自定义轮播图片控件使用

    效果图 直接先上效果图。 实现原理 本篇主要讲如何在项目中引用。具体实现请查看Android 自定义轮播图 添加依...

网友评论

      本文标题:Android 电商 四种条目 加轮播图效果

      本文链接:https://www.haomeiwen.com/subject/wwvjiqtx.html