leilei

fragment_class

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">


    <android.support.v7.widget.RecyclerView
        android:id="@+id/type_left"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="7"></android.support.v7.widget.RecyclerView>


    <android.support.v7.widget.RecyclerView
        android:id="@+id/type_right"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="15dp"
        android:layout_weight="3"></android.support.v7.widget.RecyclerView>

</LinearLayout>


lift_item

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:orientation="vertical">


    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:text="123"
        android:gravity="center"
        android:textSize="20sp"
        android:layout_marginTop="5dp"
        android:layout_height="55dp" />

</LinearLayout>

right_item


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


        <TextView
            android:layout_width="4dp"
            android:layout_height="30dp"
            android:background="@color/colorAccent" />


        <TextView
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:enabled="true"
            android:text="234"
            android:textSize="20sp" />
    </RelativeLayout>


    <android.support.v7.widget.RecyclerView
        android:id="@+id/item_rlv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>


right_item2

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">


    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/iv"
        android:layout_width="60dp"
        android:layout_height="60dp" />


    <TextView
        android:id="@+id/tv"
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="12" />

</LinearLayout>


FragmentClass

import android.os.Bundle;
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.bwie.month01.R;
import com.bwie.month01.adapter.LeftAdapter;
import com.bwie.month01.adapter.RightAdapter;
import com.bwie.month01.bean.LeftBean;
import com.bwie.month01.bean.RightBean;
import com.bwie.month01.presenter.LeftPresenterImp;
import com.bwie.month01.presenter.RightPresenterImp;
import com.bwie.month01.view.LeftView;
import com.bwie.month01.view.RightView;


/**
 * author: Wangxinrun
 * Date: 2018/6/27
 * Time: 14:15
 */


public class FragmentClass extends Fragment implements LeftView, RightView {
    View view;
    RecyclerView recyclerLeft, recyclerRight;
    LeftPresenterImp leftPresenterImp;
    RightPresenterImp rightPresenterImp;


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = LayoutInflater.from(getContext()).inflate(R.layout.fragment_class, container, false);
        initView();
        return view;
    }


    private void initView() {
        recyclerLeft = view.findViewById(R.id.type_left);
        recyclerLeft.setLayoutManager(new LinearLayoutManager(getContext()));
        leftPresenterImp = new LeftPresenterImp(this);
        leftPresenterImp.getLeft();
        recyclerRight = view.findViewById(R.id.type_right);
        recyclerRight.setLayoutManager(new LinearLayoutManager(getContext()));
        rightPresenterImp = new RightPresenterImp(this);
        rightPresenterImp.getRight("1");
    }


    @Override
    public void getLeft(final LeftBean leftBean) {
        final LeftAdapter leftAdapter = new LeftAdapter(getContext(), leftBean.getData());
        recyclerLeft.setAdapter(leftAdapter);
        leftAdapter.setRecyclerViewItemOnClick(new LeftAdapter.RecyclerViewItemOnClick() {
            @Override
            public void recyclerViewItemOnClick(int position, View view, RecyclerView.ViewHolder holder) {
                leftAdapter.setTagPosition(position);
                int cid = leftBean.getData().get(position).getCid();
                rightPresenterImp.getRight(cid+"");
                leftAdapter.notifyDataSetChanged();
            }
        });
    }


    @Override
    public void getRight(RightBean rightBean) {
        RightAdapter rightAdapter = new RightAdapter(getContext(), rightBean.getData());
        recyclerRight.setAdapter(rightAdapter);
        rightAdapter.notifyDataSetChanged();
    }

}


LeftView

public interface LeftView {
    void getLeft(LeftBean leftBean);

}


RightView

public interface RightView {
    void getRight(RightBean rightBean);

}


LeftBean

public class LeftBean {


    /**
     * msg :
     * code : 0
     * data : [{"cid":1,"createtime":"2017-10-10T19:41:39","icon":"http://120.27.23.105/images/category/shop.png","ishome":1,"name":"京东超市"},{"cid":2,"createtime":"2017-10-10T19:41:39","icon":"http://120.27.23.105/images/category/qqg.png","ishome":1,"name":"全球购"},{"cid":3,"createtime":"2017-10-10T19:45:11","icon":"http://120.27.23.105/images/category/phone.png","ishome":1,"name":"手机数码"},{"cid":5,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/man.png","ishome":1,"name":"男装"},{"cid":6,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/girl.png","ishome":1,"name":"女装"},{"cid":7,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/manshoe.png","ishome":1,"name":"男鞋"},{"cid":8,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/girlshoe.png","ishome":1,"name":"女鞋"},{"cid":9,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/shirt.png","ishome":1,"name":"内衣配饰"},{"cid":10,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/bag.png","ishome":1,"name":"箱包手袋"},{"cid":11,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/beauty.png","ishome":1,"name":"美妆个护"},{"cid":12,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/jewel.png","ishome":1,"name":"钟表珠宝"},{"cid":13,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/luxury.png","ishome":1,"name":"奢侈品"},{"cid":14,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/computer.png","ishome":1,"name":"电脑办公"},{"cid":15,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"家用电器"},{"cid":16,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"食品生鲜"},{"cid":17,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"酒水饮料"},{"cid":18,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"母婴童装"},{"cid":19,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"玩具乐器"},{"cid":20,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"医药保健"}]
     */


    private String msg;
    private String code;
    private List<DataBean> data;


    public String getMsg() {
        return msg;
    }


    public void setMsg(String msg) {
        this.msg = msg;
    }


    public String getCode() {
        return code;
    }


    public void setCode(String code) {
        this.code = code;
    }


    public List<DataBean> getData() {
        return data;
    }


    public void setData(List<DataBean> data) {
        this.data = data;
    }


    public static class DataBean {
        /**
         * cid : 1
         * createtime : 2017-10-10T19:41:39
         * icon : http://120.27.23.105/images/category/shop.png
         * ishome : 1
         * name : 京东超市
         */


        private int cid;
        private String createtime;
        private String icon;
        private int ishome;
        private String name;


        public int getCid() {
            return cid;
        }


        public void setCid(int cid) {
            this.cid = cid;
        }


        public String getCreatetime() {
            return createtime;
        }


        public void setCreatetime(String createtime) {
            this.createtime = createtime;
        }


        public String getIcon() {
            return icon;
        }


        public void setIcon(String icon) {
            this.icon = icon;
        }


        public int getIshome() {
            return ishome;
        }


        public void setIshome(int ishome) {
            this.ishome = ishome;
        }


        public String getName() {
            return name;
        }


        public void setName(String name) {
            this.name = name;
        }
    }

}

RightBean

public class RightBean {


    /**
     * msg : 获取子分类成功
     * code : 0
     * data : [{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"月饼","pcid":1,"pscid":1},{"icon":"http://120.27.23.105/images/icon.png","name":"坚果炒货","pcid":1,"pscid":2},{"icon":"http://120.27.23.105/images/icon.png","name":"糖巧","pcid":1,"pscid":3},{"icon":"http://120.27.23.105/images/icon.png","name":"休闲零食","pcid":1,"pscid":4},{"icon":"http://120.27.23.105/images/icon.png","name":"肉干肉脯","pcid":1,"pscid":5},{"icon":"http://120.27.23.105/images/icon.png","name":"饼干蛋糕","pcid":1,"pscid":6},{"icon":"http://120.27.23.105/images/icon.png","name":"蜜饯果干","pcid":1,"pscid":7},{"icon":"http://120.27.23.105/images/icon.png","name":"无糖食品","pcid":1,"pscid":8}],"name":"休闲零食","pcid":"1"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"新鲜水果","pcid":2,"pscid":9},{"icon":"http://120.27.23.105/images/icon.png","name":"海鲜水产","pcid":2,"pscid":10},{"icon":"http://120.27.23.105/images/icon.png","name":"精选肉类","pcid":2,"pscid":11},{"icon":"http://120.27.23.105/images/icon.png","name":"蛋类","pcid":2,"pscid":12},{"icon":"http://120.27.23.105/images/icon.png","name":"新鲜蔬菜","pcid":2,"pscid":13},{"icon":"http://120.27.23.105/images/icon.png","name":"冷冻食品","pcid":2,"pscid":14},{"icon":"http://120.27.23.105/images/icon.png","name":"饮品甜品","pcid":2,"pscid":15},{"icon":"http://120.27.23.105/images/icon.png","name":"大闸蟹","pcid":2,"pscid":16}],"name":"京东生鲜","pcid":"2"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"大米","pcid":3,"pscid":21},{"icon":"http://120.27.23.105/images/icon.png","name":"面粉","pcid":3,"pscid":22},{"icon":"http://120.27.23.105/images/icon.png","name":"杂粮","pcid":3,"pscid":23},{"icon":"http://120.27.23.105/images/icon.png","name":"食用油","pcid":3,"pscid":24},{"icon":"http://120.27.23.105/images/icon.png","name":"调味品","pcid":3,"pscid":25},{"icon":"http://120.27.23.105/images/icon.png","name":"方便速食","pcid":3,"pscid":26},{"icon":"http://120.27.23.105/images/icon.png","name":"有机食品","pcid":3,"pscid":27}],"name":"粮油调味","pcid":"3"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"饮用水","pcid":4,"pscid":28},{"icon":"http://120.27.23.105/images/icon.png","name":"饮料","pcid":4,"pscid":29},{"icon":"http://120.27.23.105/images/icon.png","name":"牛奶乳品","pcid":4,"pscid":30},{"icon":"http://120.27.23.105/images/icon.png","name":"名茶","pcid":4,"pscid":31},{"icon":"http://120.27.23.105/images/icon.png","name":"蜂蜜","pcid":4,"pscid":32}],"name":"水饮茗茶","pcid":"4"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"白酒","pcid":5,"pscid":33},{"icon":"http://120.27.23.105/images/icon.png","name":"葡萄酒","pcid":5,"pscid":34},{"icon":"http://120.27.23.105/images/icon.png","name":"洋酒","pcid":5,"pscid":35},{"icon":"http://120.27.23.105/images/icon.png","name":"啤酒","pcid":5,"pscid":36},{"icon":"http://120.27.23.105/images/icon.png","name":"黄酒","pcid":5,"pscid":37},{"icon":"http://120.27.23.105/images/icon.png","name":"陈年老酒","pcid":5,"pscid":38}],"name":"中外名酒","pcid":"5"}]
     */


    private String msg;
    private String code;
    private List<DataBean> data;


    public String getMsg() {
        return msg;
    }


    public void setMsg(String msg) {
        this.msg = msg;
    }


    public String getCode() {
        return code;
    }


    public void setCode(String code) {
        this.code = code;
    }


    public List<DataBean> getData() {
        return data;
    }


    public void setData(List<DataBean> data) {
        this.data = data;
    }


    public static class DataBean {
        /**
         * cid : 1
         * list : [{"icon":"http://120.27.23.105/images/icon.png","name":"月饼","pcid":1,"pscid":1},{"icon":"http://120.27.23.105/images/icon.png","name":"坚果炒货","pcid":1,"pscid":2},{"icon":"http://120.27.23.105/images/icon.png","name":"糖巧","pcid":1,"pscid":3},{"icon":"http://120.27.23.105/images/icon.png","name":"休闲零食","pcid":1,"pscid":4},{"icon":"http://120.27.23.105/images/icon.png","name":"肉干肉脯","pcid":1,"pscid":5},{"icon":"http://120.27.23.105/images/icon.png","name":"饼干蛋糕","pcid":1,"pscid":6},{"icon":"http://120.27.23.105/images/icon.png","name":"蜜饯果干","pcid":1,"pscid":7},{"icon":"http://120.27.23.105/images/icon.png","name":"无糖食品","pcid":1,"pscid":8}]
         * name : 休闲零食
         * pcid : 1
         */


        private String cid;
        private String name;
        private String pcid;
        private List<ListBean> list;


        public String getCid() {
            return cid;
        }


        public void setCid(String cid) {
            this.cid = cid;
        }


        public String getName() {
            return name;
        }


        public void setName(String name) {
            this.name = name;
        }


        public String getPcid() {
            return pcid;
        }


        public void setPcid(String pcid) {
            this.pcid = pcid;
        }


        public List<ListBean> getList() {
            return list;
        }


        public void setList(List<ListBean> list) {
            this.list = list;
        }


        public static class ListBean {
            /**
             * icon : http://120.27.23.105/images/icon.png
             * name : 月饼
             * pcid : 1
             * pscid : 1
             */


            private String icon;
            private String name;
            private int pcid;
            private int pscid;


            public String getIcon() {
                return icon;
            }


            public void setIcon(String icon) {
                this.icon = icon;
            }


            public String getName() {
                return name;
            }


            public void setName(String name) {
                this.name = name;
            }


            public int getPcid() {
                return pcid;
            }


            public void setPcid(int pcid) {
                this.pcid = pcid;
            }


            public int getPscid() {
                return pscid;
            }


            public void setPscid(int pscid) {
                this.pscid = pscid;
            }
        }
    }

}


Api

public interface Api {
    public static final String URL="https://www.zhaoapi.cn/";

}


MApp

public class MApp extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }

}


LeftAdapter

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.bwie.month01.R;
import com.bwie.month01.bean.LeftBean;


import java.util.List;

public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.VH> {


    Context context;
    List<LeftBean.DataBean> list;




    public static int tagPosition;


    public static int getTagPosition() {
        return tagPosition;
    }


    public static void setTagPosition(int tagPosition) {
        LeftAdapter.tagPosition = tagPosition;
    }


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


    @Override
    public VH onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.left_item, parent, false);
        final VH vh = new VH(view);
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                recyclerViewItemOnClick.recyclerViewItemOnClick(vh.getAdapterPosition(), view, vh);
            }
        });
        return vh;
    }


    @Override
    public void onBindViewHolder(VH holder, int position) {
        holder.textView.setText(list.get(position).getName());
        if (position==getTagPosition()){
            holder.itemView.setBackgroundResource(R.color.colorGr);
        }else{
            holder.itemView.setBackgroundResource(R.color.colorWhile);
        }
    }


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


    class VH extends RecyclerView.ViewHolder {
        TextView textView;


        public VH(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.tv);
        }
    }


    RecyclerViewItemOnClick recyclerViewItemOnClick;


    public interface RecyclerViewItemOnClick {
        void recyclerViewItemOnClick(int position, View view, RecyclerView.ViewHolder holder);
    }


    public void setRecyclerViewItemOnClick(RecyclerViewItemOnClick recyclerViewItemOnClick) {
        this.recyclerViewItemOnClick = recyclerViewItemOnClick;
    }

}


RightAdapter

public class RightAdapter extends RecyclerView.Adapter<RightAdapter.VH> {


    Context context;
    List<RightBean.DataBean> list;


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


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


    @Override
    public void onBindViewHolder(VH holder, int position) {
        holder.textView.setText(list.get(position).getName());
        holder.recyclerView.setLayoutManager(new GridLayoutManager(context,3));
        Right2Adapter right2Adapter = new Right2Adapter(context, this.list.get(position).getList());
        holder.recyclerView.setAdapter(right2Adapter);
    }


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


    class VH extends RecyclerView.ViewHolder {
        RecyclerView recyclerView;
        TextView textView;


        public VH(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.tv);
            recyclerView = itemView.findViewById(R.id.item_rlv);


        }
    }

}


Right2Adapter

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


import com.bwie.month01.R;
import com.bwie.month01.bean.RightBean;
import com.facebook.drawee.view.SimpleDraweeView;
import java.util.List;

public class Right2Adapter extends RecyclerView.Adapter<Right2Adapter.VH> {


    Context context;
    List<RightBean.DataBean.ListBean> list;


    public Right2Adapter(Context context, List<RightBean.DataBean.ListBean> list) {
        this.context = context;
        this.list = list;
    }


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


    @Override
    public void onBindViewHolder(VH holder, int position) {
        holder.textView.setText(list.get(position).getName());
        Uri uri=Uri.parse(list.get(position).getIcon());
        holder.simpleDraweeView.setImageURI(uri);
    }


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


    class VH extends RecyclerView.ViewHolder {
        TextView textView;
        SimpleDraweeView simpleDraweeView;


        public VH(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.tv);
            simpleDraweeView = itemView.findViewById(R.id.iv);
        }
    }

}


AppServer

import java.util.Map;


import io.reactivex.Observable;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;

public interface AppServer {
    @GET("product/getCatagory")
    Observable<LeftBean> left();


    @POST("product/getProductCatagory")
    @FormUrlEncoded
    Observable<RightBean> right(@FieldMap Map<String, String> map);

}


LeftModelImp

import com.bwie.month01.bean.LeftBean;
import com.bwie.month01.model.inter.LeftModel;
import com.bwie.month01.utils.OnNetListener;
import com.bwie.month01.utils.RetrofitUtils;


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


public class LeftModelImp implements LeftModel {
    @Override
    public void getLeft(final OnNetListener onNetListener) {
        RetrofitUtils.getInstance().server().left()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Consumer<LeftBean>() {
                    @Override
                    public void accept(LeftBean leftBean) throws Exception {
                        onNetListener.onSuccess(leftBean);
                    }
                });
    }

}


RightModelImp

import com.bwie.month01.bean.RightBean;
import com.bwie.month01.model.inter.RightModel;
import com.bwie.month01.utils.OnNetListener;
import com.bwie.month01.utils.RetrofitUtils;


import java.util.HashMap;
import java.util.Map;


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


public class RightModelImp implements RightModel {
    @Override
    public void getRight(String cid, final OnNetListener onNetListener) {
        Map<String, String> map = new HashMap<>();
        map.put("cid", cid);
        RetrofitUtils.getInstance().server().right(map)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribe(new Consumer<RightBean>() {
                    @Override
                    public void accept(RightBean rightBean) throws Exception {
                        onNetListener.onSuccess(rightBean);
                    }
                });
    }

}


LeftModel

public interface LeftModel {
    void getLeft(OnNetListener onNetListener);

}


RightModel

public interface RightModel {
    void getRight(String cid, OnNetListener onNetListener);

}


LeftPersenterImp

public class LeftPresenterImp implements LeftPresenter {
    LeftView leftView;
    LeftModelImp leftModelImp;


    public LeftPresenterImp(LeftView leftView) {
        this.leftView = leftView;
        leftModelImp = new LeftModelImp();
    }


    @Override
    public void getLeft() {
        leftModelImp.getLeft(new OnNetListener() {
            @Override
            public void onSuccess(Object o) {
                leftView.getLeft((LeftBean) o);
            }
        });
    }

}


RightPersenterImp

public class RightPresenterImp implements RightPresenter {
    RightView rightView;
    RightModelImp rightModelImp;


    public RightPresenterImp(RightView rightView) {
        this.rightView = rightView;
        rightModelImp = new RightModelImp();
    }


    @Override
    public void getRight(String cid) {
        rightModelImp.getRight(cid, new OnNetListener() {
            @Override
            public void onSuccess(Object o) {
                rightView.getRight((RightBean) o);
            }
        });
    }

}


LeftPersenter

public interface LeftPresenter {
    void getLeft();

}


RightPersenter

public interface RightPresenter {
    void getRight(String cid);

}


OnNetListener

public interface OnNetListener<T> {
    void onSuccess(T t);

}


RetrofitUtils

public class RetrofitUtils {
    private static RetrofitUtils instance;
    private static AppServer appServer;
    private OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .connectTimeout(20, TimeUnit.SECONDS)
            .readTimeout(15, TimeUnit.SECONDS)
            .writeTimeout(15, TimeUnit.SECONDS)
            .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
            .build();


    private RetrofitUtils() {
        Retrofit retrofit = new Retrofit.Builder()
                .client(okHttpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .baseUrl(Api.URL)
                .build();
        appServer = retrofit.create(AppServer.class);
    }


    public static RetrofitUtils getInstance() {
        if (instance == null) {
            instance = new RetrofitUtils();
        }
        return instance;
    }


    public static AppServer server() {
        return appServer;
    }

}


依赖

compile 'com.android.support:appcompat-v7:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.squareup.okio:okio:1.5.0'
    compile 'com.squareup.okhttp3:okhttp:3.2.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.facebook.fresco:fresco:0.12.0'
    compile 'com.facebook.fresco:animated-gif:0.12.0'
    compile 'com.jakewharton:butterknife:6.1.0'
    compile 'com.squareup.retrofit2:retrofit:+'
    compile 'com.squareup.retrofit2:converter-gson:+'
    compile 'io.reactivex.rxjava2:rxjava:+'
    compile 'io.reactivex.rxjava2:rxandroid:+'
    compile 'com.squareup.retrofit2:adapter-rxjava2:+'
    compile 'cn.yipianfengye.android:zxing-library:2.1'
    compile 'com.sunfusheng:marqueeview:1.3.3'
    compile 'com.youth.banner:banner:1.4.10'

    compile 'com.zhy:autolayout:1.4.5'


权限

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bwie.month01">
    <!--允许程序打开网络套接字-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--允许程序设置内置sd卡的写权限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允许程序获取网络状态-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--允许程序访问WiFi网络信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--允许程序读写手机状态和身份-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <application
        android:name=".app.MApp"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="79aca33c18d01458133ecccca48a1387">
        </meta-data>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>


</manifest>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值