recleview多条目展示s

package com.bawie.niu.http;

import android.os.Environment;
import android.os.Handler;
import android.util.Log;

import com.google.gson.Gson;

import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;

import okhttp3.Cache;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class OKHttp
{

private OkHttpClient client;
private static volatile OKHttp instance;
private Handler handler = new Handler();

//创建拦截器
private Interceptor getAppInterceptor()
{
    Interceptor interceptor= new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {

            Request request = chain.request();
            Log.e("++++++","拦截前");
            Response response = chain.proceed(request);
            Log.e("++++++","拦截后");
            return response;
        }
    };
    return interceptor;
}
//添加拦截器
private OKHttp()
{
    File file = new File(Environment.getExternalStorageDirectory(), "cache1");
    client = new OkHttpClient().newBuilder()
            .readTimeout(3000,TimeUnit.SECONDS)
            .connectTimeout(3000,TimeUnit.SECONDS)
            .addInterceptor(getAppInterceptor())
            .cache(new Cache(file,10*1024))
            .build();
}
//创建单例
public  static OKHttp getInstance()
{
    if(instance == null)
    {
        synchronized (OKHttp.class)
        {
            if(null == instance)
            {
                instance = new OKHttp();
            }
        }
    }
    return instance;
}
//封装doget方法
public void doGet(String url, final Class clazz, final NetCallBack netCallBack)
{
    // 2. 创建一个请求对象
    Request request = new Request.Builder()
            .get()
            .url(url)
            .build();
    //创建call对象
    Call call = client.newCall(request);
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String string = response.body().string();
            Gson gson = new Gson();
            final Object o = gson.fromJson(string, clazz);
            handler.post(new Runnable() {
                @Override
                public void run() {
                    netCallBack.LoadSuccess(o);
                }
            });
        }
    });
}
//封装dopost请求
public void doPost(String url, final Class clazz, String name,String pwd, final NetCallBack netCallBack)
{
    //新建okhttp对象
    client = new OkHttpClient();
    /**
     * 通过体传值
     */
    FormBody build = new FormBody.Builder()
            .add("phone", name)
            .add("pwd", pwd)
            .build();
    Request request = new Request.Builder()
            .url(url)
            .post(build)
            .build();
    Call call = client.newCall(request);
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String string = response.body().string();
            Gson gson = new Gson();
            final Object o = gson.fromJson(string, clazz);
            handler.post(new Runnable() {
                @Override
                public void run() {
                    netCallBack.LoadSuccess(o);
                }
            });
        }
    });
}
public interface NetCallBack{
    void LoadSuccess(Object obj);
    void LoadFail();
}

}

package com.bawie.niu.adapter;

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.ImageView;
import android.widget.TextView;

import com.bawie.niu.R;
import com.bawie.niu.bean.Baner_Bean;
import com.bawie.niu.bean.Show_Bean;
import com.bumptech.glide.Glide;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.stx.xhb.xbanner.XBanner;

import java.util.List;

/**

  • @Author:asus

  • @E-mail: 945574298@163.com

  • @Date:2019/3/27 14:06

  • @Description:描述信息
    */
    public class Show_Adapter extends XRecyclerView.Adapter<XRecyclerView.ViewHolder> {
    Context context;
    Show_Bean show_bean;
    Baner_Bean baner_bean;
    private BannerHolder bannerHolder;
    private RxxpHolder rxxpHolder;
    private MlssViewHodler mlssViewHodler;
    private PzshViewHolder pzshViewHolder;
    private LinearLayoutManager linearLayoutManager;

    private List<Show_Bean.ResultBean.RxxpBean.CommodityListBean> commodityList1;
    private List<Show_Bean.ResultBean.MlssBean.CommodityListBeanXX> commodityList2;
    private List<Show_Bean.ResultBean.PzshBean.CommodityListBeanX> commodityList3;
    private List<Baner_Bean.ResultBean> result;

    public Show_Adapter(Context context, Show_Bean show_bean,Baner_Bean baner_bean) {
    this.context = context;
    this.show_bean = show_bean;
    this.baner_bean = baner_bean;

    }

    private final int Banner_TYPE = 0;
    private final int RXXP_TYPE=1;
    private final int MLSS_TYPE=2;
    private final int PZSH_TYPE=3;

    @NonNull
    @Override
    public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    if(iBanner_TYPE){
    View view = LayoutInflater.from(context).inflate(R.layout.banner_item, null);
    bannerHolder = new BannerHolder(view);
    return bannerHolder;
    }
    else if(i
    RXXP_TYPE){
    View view = LayoutInflater.from(context).inflate(R.layout.rxxp_item, null);
    rxxpHolder = new RxxpHolder(view);
    return rxxpHolder;
    }
    else if(iMLSS_TYPE){
    View view = LayoutInflater.from(context).inflate(R.layout.mlss_item, null);
    mlssViewHodler = new MlssViewHodler(view);
    return mlssViewHodler;
    }
    else if(i
    PZSH_TYPE){
    View view = LayoutInflater.from(context).inflate(R.layout.pzsh_item, null);
    pzshViewHolder = new PzshViewHolder(view);
    return pzshViewHolder;
    }
    return null;
    }

    @Override
    public void onBindViewHolder(@NonNull XRecyclerView.ViewHolder viewHolder, int i) {
    if(viewHolder instanceof BannerHolder){
    BannerHolder bannerHolder= (BannerHolder) viewHolder;
    result = baner_bean.getResult();
    bannerHolder.banner.setData(result,null);
    bannerHolder.banner.setmAdapter(new XBanner.XBannerAdapter() {
    @Override
    public void loadBanner(XBanner banner, View view, int position) {
    Glide.with(context).load(result.get(position).getImageUrl()).into((ImageView) view);
    }
    });
    }else if(viewHolder instanceof RxxpHolder){
    RxxpHolder rxxpHolder= (RxxpHolder) viewHolder;
    rxxpHolder.one_text.setText(show_bean.getResult().getRxxp().getName());
    linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
    rxxpHolder.one_list.setLayoutManager(linearLayoutManager);
    commodityList1 = show_bean.getResult().getRxxp().getCommodityList();
    RxxpAdapter rxxpAdapter = new RxxpAdapter(context, commodityList1);
    rxxpHolder.one_list.setAdapter(rxxpAdapter);

      }
      else if(viewHolder instanceof  MlssViewHodler){
          MlssViewHodler mlssViewHodler= (MlssViewHodler) viewHolder;
          mlssViewHodler.two_text.setText(show_bean.getResult().getMlss().getName());
          LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
          mlssViewHodler.two_list.setLayoutManager(linearLayoutManager);
          commodityList2 = show_bean.getResult().getMlss().getCommodityList();
          MlssAdapter mlssAdapter = new MlssAdapter(context, commodityList2);
          mlssViewHodler.two_list.setAdapter(mlssAdapter);
    
      }
      else if(viewHolder instanceof  PzshViewHolder){
      PzshViewHolder pzshViewHolder= (PzshViewHolder) viewHolder;
      pzshViewHolder.three_text.setText(show_bean.getResult().getPzsh().getName());
    
       pzshViewHolder.three_list.setLayoutManager(new GridLayoutManager(context,2));
          commodityList3 = show_bean.getResult().getPzsh().getCommodityList();
          PzshAdapter pzshAdapter = new PzshAdapter(context, commodityList3);
          pzshViewHolder.three_list.setAdapter(pzshAdapter);
    
      }
    

    }

    @Override
    public int getItemCount() {
    return 4;
    }
    @Override
    public int getItemViewType(int position) {
    if(position0){
    return Banner_TYPE;
    }else if(position
    1){
    return RXXP_TYPE;
    }
    else if(position2){
    return MLSS_TYPE;
    }
    else if(position
    3){
    return PZSH_TYPE;
    }
    return super.getItemViewType(position);

    }

    //自定义viewHlder
    public class BannerHolder extends RecyclerView.ViewHolder{

     private final XBanner banner;
    
     public BannerHolder(@NonNull View itemView) {
         super(itemView);
         banner = itemView.findViewById(R.id.xbanner);
     }
    

    }
    //热销新品
    public class RxxpHolder extends RecyclerView.ViewHolder{
    private final TextView one_text;
    private final RecyclerView one_list;
    public RxxpHolder(@NonNull View itemView) {
    super(itemView);
    one_text = itemView.findViewById(R.id.one_text);
    one_list = itemView.findViewById(R.id.one_list);
    }
    }
    //魔力时尚
    public class MlssViewHodler extends RecyclerView.ViewHolder{
    private final TextView two_text;
    private final RecyclerView two_list;
    public MlssViewHodler(@NonNull View itemView) {
    super(itemView);
    two_text = itemView.findViewById(R.id.two_text);
    two_list = itemView.findViewById(R.id.two_list);
    }
    }
    //品质生活
    public class PzshViewHolder extends RecyclerView.ViewHolder{
    private final TextView three_text;
    private final RecyclerView three_list;
    public PzshViewHolder(@NonNull View itemView) {
    super(itemView);
    three_text = itemView.findViewById(R.id.three_text);
    three_list = itemView.findViewById(R.id.three_list);
    }
    }
    }

package com.bawie.niu.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.bawie.niu.R;
import com.bawie.niu.bean.Show_Bean;
import com.bumptech.glide.Glide;

import java.util.List;

/**

  • @Author:asus

  • @E-mail: 945574298@163.com

  • @Date:2019/3/27 14:54

  • @Description:描述信息
    */
    public class PzshAdapter extends RecyclerView.Adapter<PzshAdapter.ViewHolder> {
    Context context;
    List<Show_Bean.ResultBean.PzshBean.CommodityListBeanX> list;

    public PzshAdapter(Context context, List<Show_Bean.ResultBean.PzshBean.CommodityListBeanX> list) {
    this.context = context;
    this.list = list;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(context).inflate(R.layout.three_item, null);
    return new ViewHolder(view);

    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
    viewHolder.name.setText(list.get(i).getCommodityName());
    viewHolder.price.setText(list.get(i).getPrice());
    Glide.with(context).load(list.get(i).getMasterPic()).into(viewHolder.img);

    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {

     ImageView img;
     TextView name;
     TextView price;
     public ViewHolder(@NonNull View itemView) {
         super(itemView);
         img = itemView.findViewById(R.id.layout_three_image);
         price = itemView.findViewById(R.id.layout_three_text1);
         name =  itemView.findViewById(R.id.layout_three_text2);
     }
    

    }
    }

package com.bawie.niu.fragment;

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.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.bawie.niu.R;
import com.bawie.niu.adapter.Show_Adapter;
import com.bawie.niu.bean.Baner_Bean;
import com.bawie.niu.bean.Show_Bean;
import com.bawie.niu.mvp.presenter.SPresenterImpl;
import com.bawie.niu.mvp.view.SView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.stx.xhb.xbanner.XBanner;

/**

  • @Author:asus

  • @E-mail: 945574298@163.com

  • @Date:2019/3/23 9:43

  • @Description:描述信息
    */
    public class Frag_01 extends Fragment implements SView {

    private XRecyclerView recyclerView;
    private SPresenterImpl sPresenter;
    private LinearLayoutManager linearLayoutManager;

    private Show_Bean show_bean;
    private XBanner banner;
    private Baner_Bean baner_bean;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.frag_01, container, false);
    recyclerView = view.findViewById(R.id.xrecyleview);
    banner = view.findViewById(R.id.xbanner);
    sPresenter = new SPresenterImpl();
    sPresenter.Attacth(this);
    sPresenter.getppp();
    sPresenter.getbanner();
    //布局管理器
    linearLayoutManager = new LinearLayoutManager(getActivity());
    recyclerView.setLayoutManager(linearLayoutManager);

     return view;
    

    }

    @Override
    public void getview(Object data) {
    show_bean = (Show_Bean) data;
    Show_Adapter show_adapter = new Show_Adapter(getActivity(), show_bean,baner_bean);
    recyclerView.setAdapter(show_adapter);
    }

    @Override
    public void getbann(Object sdata) {
    baner_bean = (Baner_Bean) sdata;
    Show_Adapter show_adapter = new Show_Adapter(getActivity(), show_bean, baner_bean);
    recyclerView.setAdapter(show_adapter);
    }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值