Okhttp展示实现MVP展示RecyclerView多条目数据

主适配器

package com.bwei.heji.zlsj.Adpeter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.bwei.heji.R;
import com.bwei.heji.zlsj.bean.ZhanBean;

import java.util.List;

public class MySetAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    Context context;
    private final int RXXP_VIEW = 1;
    private final int PZSH_VIEW = 2;
    private final int MLSS_VIEW = 3;
    private List<ZhanBean.ProductItemBean> resultBeans;
    private List<ZhanBean.ProductItemBean.ProductItem> commodityList;
    private List<ZhanBean.ProductItemBean.ProductItem> commodityList1;
    private RxxpAdapter rxxpAdapter;
    private MlssAdapter mlssAdapter1;
    private PzshAdapter pzshAdapter;

    public MySetAdapter(Context context,List<ZhanBean.ProductItemBean> zhanbean) {
        this.context = context;
        this.resultBeans=zhanbean;
    }
  //获取条目类型

    @Override
    public int getItemViewType(int position) {
        switch (position){
            case 0:
                return RXXP_VIEW;
                case 1:
                return PZSH_VIEW;
        }
        return  MLSS_VIEW;
    }

    @NonNull
    @Override
    //创建视图
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View mView;
        if(i==RXXP_VIEW)
        {
            mView=View.inflate(viewGroup.getContext(),R.layout.item_1,null);
            return new AiViewHodler(mView);
        }else if(i == PZSH_VIEW)
        {
            return new Ai1ViewHodler(LayoutInflater.from(context).inflate(R.layout.item_2,viewGroup,false));
        }
        else {
            return new Ai2ViewHodler(LayoutInflater.from(context).inflate(R.layout.item_3,viewGroup,false));
        }
    }

    //绑定数据
    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
          if (viewHolder instanceof  AiViewHodler){
              ((AiViewHodler) viewHolder).ai.setText(resultBeans.get(i).name);
              commodityList1 = resultBeans.get(i).commodityList;
              LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false);
              ((AiViewHodler) viewHolder).it1.setLayoutManager(linearLayoutManager);
              rxxpAdapter = new RxxpAdapter(context, commodityList1);
              ((AiViewHodler) viewHolder).it1.setAdapter(rxxpAdapter);
          }
          if (viewHolder instanceof  Ai1ViewHodler){
              ((Ai1ViewHodler) viewHolder).ai1.setText(resultBeans.get(i).name);
              commodityList1 = resultBeans.get(i).commodityList;
              LinearLayoutManager layoutManager = new LinearLayoutManager(context);
              layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
              ((Ai1ViewHodler) viewHolder).it2.setLayoutManager(layoutManager);
              mlssAdapter1 = new MlssAdapter(context, commodityList1);
              ((Ai1ViewHodler) viewHolder).it2.setAdapter(mlssAdapter1);
          }
          if (viewHolder instanceof  Ai2ViewHodler){
              ((Ai2ViewHodler) viewHolder).ai2.setText(resultBeans.get(i).name);
              commodityList1 = resultBeans.get(i).commodityList;
              GridLayoutManager gridLayoutManager = new GridLayoutManager(context, 2);
              ((Ai2ViewHodler) viewHolder).it3.setLayoutManager(gridLayoutManager);
              pzshAdapter = new PzshAdapter(context, commodityList1);
              ((Ai2ViewHodler) viewHolder).it3.setAdapter(pzshAdapter);
          }
    }

    @Override
    public int getItemCount() {
        return resultBeans.size();
    }
   //创建ViewHodler
    class AiViewHodler extends  RecyclerView.ViewHolder{
        TextView ai;
        RecyclerView it1;
       public AiViewHodler(@NonNull View itemView) {
           super(itemView);
           it1=itemView.findViewById(R.id.it1);
          ai = itemView.findViewById(R.id.ai);
       }
   }
   class Ai1ViewHodler extends  RecyclerView.ViewHolder{
       TextView ai1;
       RecyclerView it2;
       public Ai1ViewHodler(@NonNull View itemView) {
           super(itemView);
           ai1 = itemView.findViewById(R.id.ai1);
           it2=itemView.findViewById(R.id.it2);
       }
   }
   class Ai2ViewHodler extends  RecyclerView.ViewHolder{
       TextView ai2;
       RecyclerView it3;
       public Ai2ViewHodler(@NonNull View itemView) {
           super(itemView);
           ai2 = itemView.findViewById(R.id.ai2);
           it3=itemView.findViewById(R.id.it3);
       }
   }
}

 条目适配器

package com.bwei.heji.zlsj.Adpeter;

import android.content.Context;
import android.support.annotation.NonNull;
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 com.bwei.heji.R;
import com.bwei.heji.zlsj.bean.ZhanBean;

import java.util.List;


class MlssAdapter extends RecyclerView.Adapter<MlssAdapter.HlistViewHodel> {
    Context context;
    List<ZhanBean.ProductItemBean.ProductItem> list;
    public MlssAdapter(Context context, List<ZhanBean.ProductItemBean.ProductItem> list) {
        this.context=context;
        this.list=list;

    }

    @NonNull
    @Override
    public HlistViewHodel onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View mView;
        mView=View.inflate(viewGroup.getContext(),R.layout.item_er,null);
        return new HlistViewHodel(mView);
    }

    @Override
    public void onBindViewHolder(@NonNull HlistViewHodel hlistViewHodel, int i) {
        hlistViewHodel.name.setText(list.get(i).commodityName);
        hlistViewHodel.price.setText(list.get(i).price);
        Glide.with(context).load(list.get(i).masterPic).into(hlistViewHodel.img);
    }

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

    public class HlistViewHodel extends RecyclerView.ViewHolder {
        ImageView img;
        TextView name;
        TextView price;
        public HlistViewHodel(@NonNull View itemView) {
            super(itemView);
            img = itemView.findViewById(R.id.im1);
            price = itemView.findViewById(R.id.te1);
            name =  itemView.findViewById(R.id.te2);
        }
    }
}

 model类

package com.bwei.heji.zlsj.model;


import com.bwei.heji.network.Okhttps;
import com.bwei.heji.zlsj.bean.ZhanBean;

public class LyModelInter implements  ILyModelInter{


    @Override
    public void getDate(String url, final ZsInterface zsInterface) {
        Okhttps.getInstance().doGet(url, ZhanBean.class, new Okhttps.NetCallBack() {
            @Override
            public void onSuccess(Object o) {
                zsInterface.Success(o);
            }
            @Override
            public void onFailure(Exception e) {

            }
        });
    }
}

 model接口

package com.bwei.heji.zlsj.model;

public interface ILyModelInter {
    public void  getDate(String url,ZsInterface zsInterface);
     interface  ZsInterface{
           void Success(Object date);
           void  Fauiles();
    }
}

 presenter类

package com.bwei.heji.zlsj.presenter;


import com.bwei.heji.api.Api;
import com.bwei.heji.fragment.ShowFragment;
import com.bwei.heji.zlsj.model.ILyModelInter;
import com.bwei.heji.zlsj.model.LyModelInter;

public class LyPresenter  implements  LyPresenterInter{
    ShowFragment showFragment;
    private final LyModelInter lyModelInter;

    public LyPresenter(ShowFragment showFragment) {
        this.showFragment=showFragment;
        lyModelInter = new LyModelInter();
    }

    @Override
    public void getModel() {
         lyModelInter.getDate(Api.Show, new ILyModelInter.ZsInterface() {
             @Override
             public void Success(Object date) {
                  showFragment.getViewData(date);
             }
             @Override
             public void Fauiles() {

             }
         });
    }
}

 presenter接口

package com.bwei.heji.zlsj.presenter;

public interface LyPresenterInter {
      public  void getModel();
}

 View接口

package com.bwei.heji.zlsj.view;

public interface IViewInter {
   public  void getViewData(Object ob);
}

实现类

package com.bwei.heji.fragment;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.bwei.heji.R;
import com.bwei.heji.zlsj.Adpeter.MySetAdapter;
import com.bwei.heji.zlsj.bean.ZhanBean;
import com.bwei.heji.zlsj.presenter.LyPresenter;
import com.bwei.heji.zlsj.view.IViewInter;
import com.bwei.heji.zlsj.view.ZxingActivity;

import java.util.ArrayList;

public class ShowFragment extends Fragment implements IViewInter {

    private View view;
    private RecyclerView mls;
    private LyPresenter lyPresenter;
    private Intent intent;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.show,container,false);
        mls = view.findViewById(R.id.mls);
        view.findViewById(R.id.sao).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                intent = new Intent(getActivity(), ZxingActivity.class);
                startActivity(intent);
            }
        });
        lyPresenter = new LyPresenter(this);
        lyPresenter.getModel();
        //设置布局
        LinearLayoutManager linearLayoutManager =
                new LinearLayoutManager(getActivity(),
                        LinearLayoutManager.VERTICAL,false);
        mls.setLayoutManager(linearLayoutManager);
        return view;
    }
    @Override
    public void getViewData(Object ob) {
        ZhanBean zhanBean = (ZhanBean) ob;
        ArrayList<ZhanBean.ProductItemBean> list = new ArrayList<>();
        list.addAll(zhanBean.result.rxxp);
        list.addAll(zhanBean.result.mlss);
        list.addAll(zhanBean.result.pzsh);
        MySetAdapter mySetAdapter = new MySetAdapter(getActivity(),list);
        mls.setAdapter(mySetAdapter);
    }
}

相关布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <TextView
        android:id="@+id/sao"
        android:gravity="center"
        android:text="扫一扫"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <android.support.v7.widget.RecyclerView
        android:id="@+id/mls"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值