购物车MVP框架

本文介绍了一种购物车数据的获取与处理方法,通过HTTP请求从服务器获取包含多个购物者及其商品列表的数据,利用自定义回调接口处理响应,实现了数据的成功解析与错误处理。

StringUtils

package com.example.dsover.utils;

/**
 * Created by 红鼻子小黑 on 2018/10/25.
 */

public class StringUtils {
    public static String Http2Http(String url){
        return url.replace("https","http");
    }
}

cart包

model

CartModel

package com.example.dsover.gouwuche.cart.model;

import com.example.dsover.utils.HttpUtils;
import com.example.dsover.utils.ICallBack;

import java.lang.reflect.Type;

/**
 * Created by 红鼻子小黑 on 2018/10/25.
 */

public class CartModel {
    public void getData(String url, ICallBack callBack, Type type){
        HttpUtils.getInstance().get(url,callBack,type);
    }
}

Cartpresenter

package com.example.dsover.gouwuche.cart.presenter;

import com.example.dsover.bean.MessagerBean;
import com.example.dsover.bean.Product;
import com.example.dsover.bean.Shopper;
import com.example.dsover.gouwuche.cart.model.CartModel;
import com.example.dsover.gouwuche.cart.view.IView;
import com.example.dsover.utils.ICallBack;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.List;

/**
 * Created by 红鼻子小黑 on 2018/10/25.
 */

public class CartPresenter {
    private IView iv;
    private CartModel cartModel;
    public void attch(IView iv){
        this.iv = iv;
        cartModel = new CartModel();
    }
    public void getData(){
        String url = "http://www.zhaoapi.cn/product/getCarts?uid=1538";
        Type type = new TypeToken<MessagerBean<List<Shopper<List<Product>>>>>(){}.getType();
        cartModel.getData(url, new ICallBack() {
            @Override
            public void onSuccess(Object obj) {
                MessagerBean<List<Shopper<List<Product>>>> data = (MessagerBean<List<Shopper<List<Product>>>>) obj;
                iv.success(data);
            }

            @Override
            public void onFailed(Exception e) {
                iv.failed(e);
            }
        },type);
    }
    public void detach(){
        if (iv!=null){
            iv = null;
        }
    }
}

Iview

package com.example.dsover.gouwuche.cart.view;

import com.example.dsover.bean.MessagerBean;
import com.example.dsover.bean.Product;
import com.example.dsover.bean.Shopper;

import java.util.List;

/**
 * Created by 红鼻子小黑 on 2018/10/25.
 */

public interface IView {
    void success(MessagerBean<List<Shopper<List<Product>>>> data);
    void failed(Exception e);
}

ICallback

package com.example.dsover.utils;

/**
 * Created by 红鼻子小黑 on 2018/10/25.
 */

public interface ICallBack {
    void onSuccess(Object obj);
    void onFailed(Exception e);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值