分类+购物车

封装:

public class Httputils {

    public final Api api;

    public Httputils(){
        OkHttpClient httpClient = new OkHttpClient.Builder()
                .addNetworkInterceptor(new LoggingInterceptor())
                .build();
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Contant.BAST_URI)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(httpClient)
                .build();

        api = retrofit.create(Api.class);
    }
    class LoggingInterceptor implements Interceptor{
        @Override
        public Response intercept(Chain chain) throws IOException {
            Request request = chain.request();
            long time = System.nanoTime();
            Response response = chain.proceed(request);
            long time1 = System.nanoTime();
            return response;
        }
    }
    private static class GetHttptUtilsinfo{
        private static Httputils httputils = new Httputils();
    }
    public static Httputils gethttputils(){
        return GetHttptUtilsinfo.httputils;
    }
}

Contant:

public static final String BAST_URI = "http://www.zhaoapi.cn/";

Api:

public interface Api {
    //左边列表
    @GET("product/getCatagory")
    Observable<Bean> cata();
    //右边列表
    @GET("product/getProductCatagory")
    Observable<youBean> fenzi(@Query("cid") int cid);
    //详情
    @GET("product/getProductDetail")
    Observable<XiangBean> xiang(@Query("pid") String pid);
    //购物车
    @GET("product/getCarts?uid=71")
    Observable<GouBean> gou();
}

分类左边的M层:

public void MainModel(final mainmodel mainmodel){
    Observable<Bean> cata = Httputils.gethttputils().api.cata();
    cata.observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe(new Observer<Bean>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(Bean bean) {
                    List<Bean.DataBean> data = bean.getData();
                    mainmodel.onSluccess(data);
                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onComplete() {

                }
            });
}
public interface  mainmodel{
    void onSluccess(List<Bean.DataBean> data);
}

分类右边边的M层:

public class FenleiModel {
    public void fenpresenter(int cid,final MyRightCallBak myRightCallBak){
        Observable<youBean> fenzi = Httputils.gethttputils().api.fenzi(cid);
        fenzi.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<youBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(youBean youBean) {
                        List<youBean.DataBean> data = youBean.getData();
                        myRightCallBak.onSuccess(data);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
    public interface  MyRightCallBak{
        void onSuccess(List<youBean.DataBean> data);
    }
}

详情的M:

public class XiangModel {
    public void XiangModel(String pid,final MyRight myRight){
        Observable<XiangBean> xiang1 = Httputils.gethttputils().api.xiang(pid);
        xiang1.observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribe(new Observer<XiangBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(XiangBean xiangBean) {
                        XiangBean.DataBean data = xiangBean.getData();
                        myRight.onSuccess(data);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
    public interface MyRight{
        void onSuccess(XiangBean.DataBean data);
    }
}

购物车的M:

public class GouModel {
    public void GouModel(final GouwMo gouwMo){
        Observable<GouBean> gou = Httputils.gethttputils().api.gou();
        gou.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<GouBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(GouBean gouBean) {
                        List<GouBean.DataBean> data = gouBean.getData();
                        gouwMo.onSuccess(data);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
    public interface GouwMo{
        void onSuccess(List<GouBean.DataBean> data);
    }
}

分类左边的P:

public class BasePresenter<V extends IBaseView> {
    private V v;
    public void attacthView(V v){
        this.v = v;
    }
    public void detachView(){
        this.v = null;
    }
    public V getView(){
        return v;
    }
}
public class Presenter extends BasePresenter<IMainView> {

    private final MainModel model;

    public Presenter(){
        model = new MainModel();
    }

    public void getdataView(){
        model.MainModel(new MainModel.mainmodel() {
            @Override
            public void onSluccess(List<Bean.DataBean> data) {
                getView().onSuccess(data);
            }
        });
    }
}

分类右边的p:

public class Fenpresenter extends BasePresenter<IMainView>{

    private final FenleiModel fenleiModel;

    public Fenpresenter(){
        fenleiModel = new FenleiModel();
    }
    public void getdataView(int cid){
        Log.i("www",cid+"");
        fenleiModel.fenpresenter(cid, new FenleiModel.MyRightCallBak() {
            @Override
            public void onSuccess(List<youBean.DataBean> data) {
                getView().onYSuccess(data);
            }
        });
    }
}

详情的P:

public class XiangPresenter extends BasePresenter<XiangView>{

    private final XiangModel model;

    public XiangPresenter(){
        model = new XiangModel();
    }
    public void getdataView(String pid){
        model.XiangModel(pid, new XiangModel.MyRight() {
            @Override
            public void onSuccess(XiangBean.DataBean data) {
                getView().onSuccess(data);
            }
        });
    }
}

购物车的P:

public class GowPresenter extends BasePresenter<GouView>{

    private final GouModel model;

    public GowPresenter(){
        model = new GouModel();
    }
    public void getdataView(){
        model.GouModel(new GouModel.GouwMo() {
            @Override
            public void onSuccess(List<GouBean.DataBean> data) {
                getView().onSuccess(data);
            }
        });
    }
}

分类左边的适配器:

private Context context;
private List<Bean.DataBean> string;
private OnItemClickListener onItemClickListener;
public MyAdapter(Context context, List<Bean.DataBean> string) {
    this.context = context;
    this.string = string;
}

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

@Override
public void onBindViewHolder(@NonNull MyAdapter.holder holder, final int position) {
    holder.view.setText(string.get(position).getName());

    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onItemClickListener.onItemClick(position);
        }
    });
    /*holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int cid = string.get(position).getCid();
            Fenpresenter fenpresenter = new Fenpresenter();
            fenpresenter.
        }
    });*/
}

@Override
public int getItemCount() {
    return string.size();
}
class holder extends RecyclerView.ViewHolder {

    private final TextView view;

    public holder(View itemView) {
        super(itemView);
        view = itemView.findViewById(R.id.text_view);
    }
}
public interface OnItemClickListener{
    void onItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener){
    this.onItemClickListener = onItemClickListener;
}

分类右边的适配器:

private Context context;
private List<youBean.DataBean> data;

public YouAdapter(Context context, List<youBean.DataBean> data) {
    this.context = context;
    this.data = data;
}


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

@Override
public void onBindViewHolder(@NonNull YouAdapter.holder holder, final int position) {

    GridLayoutManager manager = new GridLayoutManager(context, 3, GridLayoutManager.VERTICAL, false);
    holder.rec.setLayoutManager(manager);
    ZiAdapter ziAdapter = new ZiAdapter(context,data);
    holder.rec.setAdapter(ziAdapter);
    holder.view.setText(data.get(position).getName());
    ziAdapter.setonItemclickLinsten(new ZiAdapter.onItemclickLinsten() {
        @Override
        public void onclick(int layoutPosition) {
            int pcid = data.get(position).getList().get(position).getPcid();
            Intent intent = new Intent(context, XiangActivity.class);
            intent.putExtra("pid",String.valueOf(pcid));
            context.startActivity(intent);
        }
    });
}

@Override
public int getItemCount() {
    return data.size();
}
class holder extends RecyclerView.ViewHolder implements View.OnClickListener {

    private final TextView view;
    private final RecyclerView rec;

    public holder(View itemView) {
        super(itemView);
        view = itemView.findViewById(R.id.text_name);
        rec = itemView.findViewById(R.id.recycler_you_zi);
        itemView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

    }
}

购物车适配器:

外:

private Context context;
private List<GouBean.DataBean> na;

public ShopAdapter(Context context, List<GouBean.DataBean> na) {
    this.context = context;
    this.na = na;
}

@NonNull
@Override
public ShopAdapter.holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.gou_layout, parent,false);
    holder holder = new holder(view);
    return holder;
}
@Override
public void onBindViewHolder(@NonNull final holder holder, final int position) {
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context,LinearLayoutManager.VERTICAL, false);
    holder.rec.setLayoutManager(linearLayoutManager);
    holder.tv_item_shopcart_shopname.setText(na.get(position).getSellerName());

    ShopZiAdapter adapter = new ShopZiAdapter(context,na.get(position).getList());
    holder.rec.setAdapter(adapter);
}
@Override
public int getItemCount() {
    return na.size();
}
class holder extends RecyclerView.ViewHolder {
    private final RecyclerView rec;
    CheckBox shop_checkbox;
    TextView tv_item_shopcart_shopname;

    public holder(View itemView) {
        super(itemView);
        shop_checkbox = itemView.findViewById(R.id.shop_checkbox);
        tv_item_shopcart_shopname = itemView.findViewById(R.id.tv_item_shopcart_shopname);
        rec = itemView.findViewById(R.id.recycler_view);
    }
}

里:

private Context context;
private List<GouBean.DataBean.ListBean> data;

public ShopZiAdapter(Context context, List<GouBean.DataBean.ListBean> data) {
    this.context = context;
    this.data = data;
}

@NonNull
@Override
public ShopZiAdapter.holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.shopzi_layout, null);
    holder holder = new holder(view);
    return holder;
}
@Override
public void onBindViewHolder(@NonNull final holder holder, final int position) {
    Uri uri = Uri.parse(data.get(position).getImages().split("\\|")[0]);
    holder.item_pic.setImageURI(uri);
    holder.item_name.setText(data.get(position).getTitle());
    holder.item_price.setText(data.get(position).getPrice()+"");
}

@Override
public int getItemCount() {
    return data.size();
}
class holder extends RecyclerView.ViewHolder {

    CheckBox item_checkbox;
    TextView item_price, item_name, tv_item_shopcart_cloth_size;
    SimpleDraweeView item_pic;
    Button item_del;

    public holder(View itemView) {
        super(itemView);
        item_price = itemView.findViewById(R.id.item_price);
        item_name = itemView.findViewById(R.id.item_name);
        tv_item_shopcart_cloth_size = itemView.findViewById(R.id.tv_item_shopcart_cloth_size);
        item_pic = itemView.findViewById(R.id.item_pic);
        item_checkbox = itemView.findViewById(R.id.item_checkbox);
        item_del = itemView.findViewById(R.id.item_del);
    }
}
private onchanglistener onchanglistener;
public interface onchanglistener{
    void oncheck(int layoutPosition, boolean checked);
}
public void setOnchanglistener(ShopZiAdapter.onchanglistener onchanglistener) {
    this.onchanglistener = onchanglistener;
}

分类:

@BindView(R.id.recycler_view)
RecyclerView recyclerView;
@BindView(R.id.recycler_you)
RecyclerView recyclerYou;
Unbinder unbinder;
private Presenter presenter;
private Fenpresenter fenpresenter;
private MyAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_menu, container, false);
    unbinder = ButterKnife.bind(this, view);
    presenter = new Presenter();
    fenpresenter = new Fenpresenter();
    fenpresenter.attacthView(this);
    presenter.attacthView(this);
    presenter.getdataView();
    return view;
}

@Override
public void onDestroyView() {
    super.onDestroyView();
    unbinder.unbind();
}

@Override
public void onSuccess(final List<Bean.DataBean> string) {
    GridLayoutManager manager = new GridLayoutManager(getActivity(), 1, GridLayoutManager.VERTICAL, false);
    recyclerView.setLayoutManager(manager);
    adapter = new MyAdapter(getActivity(), string);
    recyclerView.setAdapter(adapter);
    adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(int position) {
            Toast.makeText(getActivity(), "position:" + position, Toast.LENGTH_SHORT).show();
            int cid = string.get(position).getCid();
            fenpresenter.getdataView(cid);
        }
    });
}

@Override
public void onError() {

}

@Override
public void onYSuccess(List<youBean.DataBean> data) {
    GridLayoutManager manager = new GridLayoutManager(getActivity(), 1, GridLayoutManager.VERTICAL, false);
    recyclerYou.setLayoutManager(manager);
    YouAdapter youAdapter = new YouAdapter(getActivity(),data);
    recyclerYou.setAdapter(youAdapter);
}

详情:

@BindView(R.id.sim_view_dr)
SimpleDraweeView simViewDr;
@BindView(R.id.text_name_view)
TextView textNameView;
@BindView(R.id.text_price)
TextView textPrice;
@BindView(R.id.jiaru)
TextView jiaru;
private XiangPresenter presenter;
private String pid;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_xiang);
    ButterKnife.bind(this);
    pid = getIntent().getStringExtra("pid");

    presenter = new XiangPresenter();
    presenter.attacthView(this);
    presenter.getdataView(this.pid);

}

@Override
public void onSuccess(XiangBean.DataBean name) {
    Uri uri = Uri.parse(name.getImages().split("\\|")[0]);
    simViewDr.setImageURI(uri);
    textNameView.setText(name.getTitle());
    textPrice.setText(name.getPrice() + "");
}

@Override
public void onError() {

}

购物车:

Unbinder unbinder;
@BindView(R.id.third_recyclerview)
RecyclerView thirdRecyclerview;
@BindView(R.id.third_allselect)
CheckBox thirdAllselect;
@BindView(R.id.third_totalprice)
TextView thirdTotalprice;
@BindView(R.id.third_totalnum)
TextView thirdTotalnum;
@BindView(R.id.third_submit)
Button thirdSubmit;
@BindView(R.id.third_pay_linear)
LinearLayout thirdPayLinear;
private GowPresenter gowPresenter;
private ShopAdapter adapter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_shopping, container, false);
    unbinder = ButterKnife.bind(this, view);
    gowPresenter = new GowPresenter();
    gowPresenter.attacthView(this);
    gowPresenter.getdataView();
    return view;
}

@Override
public void onDestroyView() {
    super.onDestroyView();
    unbinder.unbind();
}

@Override
public void onSuccess(List<GouBean.DataBean> na) {
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
    thirdRecyclerview.setLayoutManager(linearLayoutManager);
    adapter = new ShopAdapter(getActivity(),na);
    thirdRecyclerview.setAdapter(adapter);
}

@Override
public void onError() {

}

猜你喜欢

转载自blog.csdn.net/p_19971113/article/details/83386268