小实2-分类-鑫鑫

utils

RetrofitManager

package com.example.jingdong2.utils;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;

/**
 * Created by 红鼻子小黑 on 2018/11/7.
 */

public class RetrofitManager {
    private Retrofit retrofit;
    private static final String BASE_URL = "http://www.zhaoapi.cn/";
    private static final class SINGLE_INSTANCE{
        private static RetrofitManager _INSTANCE = new RetrofitManager();
    }
    public static RetrofitManager getInstance(){
        return SINGLE_INSTANCE._INSTANCE;
    }

    private RetrofitManager(){
        retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(buildOkhttpClient())
                .build();
    }

    private OkHttpClient buildOkhttpClient() {
        return  new OkHttpClient.Builder()
                .readTimeout(3000, TimeUnit.MILLISECONDS)
                .writeTimeout(3000,TimeUnit.MILLISECONDS)
                .build();
    }

    public Retrofit getRetrofit(){
        return retrofit;
    }

    public <T> T create(Class<T> clazz){
        return  retrofit.create(clazz);
    }
}

//ILoginApi

package com.example.jingdong2.utils;

import com.example.jingdong2.bean.HomeBean;
import com.example.jingdong2.bean.LoginBean;
import com.example.jingdong2.bean.MiaoShaBean;
import com.example.jingdong2.bean.RegistBean;
import com.example.jingdong2.bean.RightBean;

import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;

/**
 * Created by 红鼻子小黑 on 2018/11/7.
 */

public interface ILoginApi {
    @GET("user/login")
    Observable<LoginBean> login(@Query("mobile") String mobile,@Query("password") String password);
    @GET("product/getCatagory")
    Observable<HomeBean> jgg();
    @GET("home/getHome")
    Observable<MiaoShaBean> miaosha();
    @GET("user/reg")
    Observable<RegistBean> regist(@Query("mobile") String mobile,@Query("password") String password);
    @GET("product/getProductCatagory")
    Observable<RightBean> right(@Query("cid") String cid);

}
<?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"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <ImageView
            android:id="@+id/img_sao"
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_weight="1"
            android:src="@drawable/sao_kind"
            android:layout_margin="5dp"
            />

        <android.support.v7.widget.SearchView
            android:layout_width="@dimen/dp_300"
            android:layout_weight="1"
            android:layout_height="35dp"
            android:background="@drawable/jiao"
            android:layout_margin="5dp"
            ></android.support.v7.widget.SearchView>

        <ImageView
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_weight="1"
            android:src="@drawable/order_msg"
            android:layout_margin="5dp"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#FFFFFDFD"
        >
        <android.support.v7.widget.RecyclerView
            android:id="@+id/left_rec"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            ></android.support.v7.widget.RecyclerView>
    </LinearLayout>
    <View
        android:layout_width="2dp"
        android:layout_height="match_parent"
        android:background="#FF979797"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <com.recker.flybanner.FlyBanner
            android:id="@+id/fl_lb"
            android:layout_width="@dimen/dp_300"
            android:layout_marginLeft="5dp"
          android:gravity="center"
            android:layout_height="150dp"></com.recker.flybanner.FlyBanner>
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:id="@+id/right_lnl"
            android:background="#FFFFFDFD"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            >
        </LinearLayout>
    </ScrollView>
    </LinearLayout>
    </LinearLayout>
</LinearLayout>

//LeftAdapter

package com.example.jingdong2.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.jingdong2.R;
import com.example.jingdong2.bean.HomeBean;

import java.util.List;

/**
 * Created by 红鼻子小黑 on 2018/11/9.
 */

public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.ViewHolder> {
    public interface OnItemClickListener{
        void OnItemClick(View itemview,int position);
    }
    private OnItemClickListener clickListener;

    public void setOnItemClickListener(OnItemClickListener clickListener){
        this.clickListener = clickListener;
    }

    private Context context;
    private List<HomeBean.DataBean> list;

    public LeftAdapter(Context context, List<HomeBean.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public LeftAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_left,parent,false);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(LeftAdapter.ViewHolder holder, final int position) {
        holder.textView.setText(list.get(position).getName());
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (clickListener!=null){
                    clickListener.OnItemClick(view,position);
                }

            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    class ViewHolder extends RecyclerView.ViewHolder{
        private TextView textView;
        public ViewHolder(View itemview){
            super(itemview);
        textView = itemview.findViewById(R.id.txt_left);
        }
    }
}

rightmodle

package com.example.jingdong2.right.model;

import com.example.jingdong2.bean.RightBean;
import com.example.jingdong2.utils.ILoginApi;
import com.example.jingdong2.utils.RetrofitManager;

import io.reactivex.Observable;

/**
 * Created by 红鼻子小黑 on 2018/11/9.
 */

public class RightModel {
   public Observable<RightBean> right(String cid){
       ILoginApi iLoginApi = RetrofitManager.getInstance().create(ILoginApi.class);
       Observable<RightBean> rightBeanObservable = iLoginApi.right(cid);
       return  rightBeanObservable;
    }
}

rightpresenter

package com.example.jingdong2.right.presenter;

import android.view.View;

import com.example.jingdong2.bean.RightBean;
import com.example.jingdong2.right.model.RightModel;
import com.example.jingdong2.right.view.RightIView;

import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;

/**
 * Created by 红鼻子小黑 on 2018/11/9.
 */

public class RightPresenter {
    private RightIView iv;
    private RightModel rightModel;
    public void attach(RightIView iv){
        this.iv = iv;
        rightModel = new RightModel();
    }
    public void right(String cid){
        rightModel.right(cid)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Consumer<RightBean>() {
                    @Override
                    public void accept(RightBean rightBean) throws Exception {
                        iv.onSuccess(rightBean);
                    }
                });
    }
    public void dettach(){
        if (iv !=null){
            iv = null;
        }
    }
}

//RightIView

package com.example.jingdong2.right.view;

import com.example.jingdong2.bean.RightBean;

/**
 * Created by 红鼻子小黑 on 2018/11/9.
 */

public interface RightIView {
    void  onSuccess(RightBean rightBean);
    void onFaild(Throwable t);
}

FL

package com.example.jingdong2.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.example.jingdong2.R;
import com.example.jingdong2.adapter.LeftAdapter;
import com.example.jingdong2.adapter.RightAdapter;
import com.example.jingdong2.bean.HomeBean;
import com.example.jingdong2.bean.RightBean;
import com.example.jingdong2.jgg.presenter.JggPresenter;
import com.example.jingdong2.jgg.view.JggIView;
import com.example.jingdong2.right.presenter.RightPresenter;
import com.example.jingdong2.right.view.RightIView;
import com.recker.flybanner.FlyBanner;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;

/**
 * Created by 红鼻子小黑 on 2018/11/1.
 */

public class FlFragment extends Fragment implements JggIView,RightIView{


    @BindView(R.id.left_rec)
    RecyclerView leftRec;
    @BindView(R.id.right_lnl)
    LinearLayout rightLnl;
    Unbinder unbinder;
    @BindView(R.id.fl_lb)
    FlyBanner flLb;
    private List<String> list;
    private JggPresenter jggPresenter;
    private List<HomeBean.DataBean> beanleft;
    private LeftAdapter leftAdapter;
    private RightPresenter rightPresenter;
    private List<RightBean.DataBean.ListBean> rightbean;
    private RightAdapter rightAdapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.item_fl, container, false);
        unbinder = ButterKnife.bind(this, view);
        return view;
    }
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        ButterKnife.bind(getActivity());
        list = new ArrayList<>();
        list.add("http://www.zhaoapi.cn/images/quarter/ad1.png");
        list.add("http://www.zhaoapi.cn/images/quarter/ad2.png");
        list.add("http://www.zhaoapi.cn/images/quarter/ad3.png");
        list.add("http://www.zhaoapi.cn/images/quarter/ad4.png");
        flLb.setImagesUrl(list);
        //分类left
        jggPresenter = new JggPresenter();
        rightPresenter = new RightPresenter();
        beanleft = new ArrayList<>();
        rightbean = new ArrayList<>();
        RecyclerView.LayoutManager layoutManager = new GridLayoutManager(getActivity(),1,GridLayoutManager.VERTICAL,false);
        leftAdapter = new LeftAdapter(getActivity(),beanleft);
        leftRec.setLayoutManager(layoutManager);
        leftRec.setAdapter(leftAdapter);
        jggPresenter.attach(this);
        jggPresenter.jgg();

        rightPresenter.attach(this);
        leftAdapter.setOnItemClickListener(new LeftAdapter.OnItemClickListener() {
            @Override
            public void OnItemClick(View itemview, int position) {
                    HomeBean.DataBean dataBean = beanleft.get(position);
                  rightPresenter.right(dataBean.getCid()+"");

//                "http://www.zhaoapi.cn/product/getProductCatagory?cid="+
            }
        });
    }
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
    }

    @Override
    public void onSuccessed(HomeBean dataBean) {
        beanleft.clear();
        beanleft.addAll(dataBean.getData());
        leftAdapter.notifyDataSetChanged();
    }

    @Override
    public void onSuccess(RightBean rightBean) {
        if (rightBean!=null){
            rightLnl.removeAllViews();
            for (int i=0;i<rightBean.getData().size();i++){
                TextView textView = new TextView(getActivity());
                textView.setText(rightBean.getData().get(i).getName());
                RecyclerView rvNextb = new RecyclerView(getActivity());
                RecyclerView.LayoutManager layoutManagers = new GridLayoutManager(getActivity(),3);
                rvNextb.setLayoutManager(layoutManagers);
                rightAdapter = new RightAdapter(getActivity(),rightBean.getData().get(i).getList());
                rvNextb.setAdapter(rightAdapter);
                rightbean.clear();
                rightbean.addAll(rightBean.getData().get(i).getList());
                rightAdapter.notifyDataSetChanged();
                rightLnl.addView(textView);
                rightLnl.addView(rvNextb);
            }
        }
    }

    @Override
    public void onFaild(Throwable t) {

    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (jggPresenter!=null){
            jggPresenter.detach();
        }
        if (rightPresenter!=null){
            rightPresenter.dettach();
        }
    }

    @Override
    public void onResume() {
        super.onResume();
        rightPresenter.right("1");
    }
}
原创文章 63 获赞 7 访问量 6289

猜你喜欢

转载自blog.csdn.net/weixin_42416789/article/details/83982151