mvp三层

M层

public class CartModel {

    public Observable<CartBean> getCartData(String uid,String token){
        Observable<CartBean> car = HttpUtils.getdatanet().api.getCar(uid, token);
        return car;
    }

}

这是封装base的P层,这个baseView里面我没有写东西,直接创建了一个空的interface,利用泛型

public class BasePresenter<V extends BaseView>{
    private V iv;

    public void attachView(V iv) {
      this.iv = iv;
    }

    public void detachView() {
        this.iv =null;
    }
    public V getView() {
        return iv;
    }
}

商品详情的p层

public class InfoPresenter extends BasePresenter<InfoView> {

    public void loadData(int pid){
        HttpUtils.getdatanet().api.queryGoodsByPid(pid)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<GoodsInfoBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(GoodsInfoBean goodsInfoBean) {
                        getView().onSuccess(goodsInfoBean);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}

商品的p层

public class CartPresenter extends BasePresenter<CartView> {

    private static final String TAG = "CartPresenter";
    private final CartModel cartModel;
    public CartPresenter(){
        cartModel = new CartModel();
    }
    public void getCart(String uid,String token){
        cartModel.getCartData(uid,token)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<CartBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                    }
                    @Override
                    public void onNext(CartBean cartBean) {
                        if (cartBean != null){
                            getView().onCarSuccess(cartBean);
                        }else {
                            Log.e(TAG, "cartBean:是空的 "+cartBean );
                        }
                    }
                    @Override
                    public void onError(Throwable e) {
                    }
                    @Override
                    public void onComplete() {
                    }
                });
    }
}

 

这是sou的Presenter

public class SouPresenter extends BasePresenter<SouView> {
    public void SouloadDataFromNet(String keyword,int page){
        Observable<SouBean> sousuo = HttpUtils.getdatanet().api.sousuo(keyword, page);
        sousuo.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<SouBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(SouBean souBean) {
                        getView().onSuccess(souBean);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}

View层

public interface SouView extends BaseView {
    void onSuccess(SouBean souBean);
}
InfoView
public interface InfoView extends BaseView {
    void onSuccess(GoodsInfoBean goodsInfoBean);
    void onError(String msg);
}

Cart

public interface CartView extends BaseView {
    void onCarSuccess(CartBean carBean);
    void onCarError(Throwable t);
}

 

 

 

 

 

<application>

//图形的展示
        DiskCacheConfig.Builder builder = DiskCacheConfig.newBuilder(this);
        builder.setBaseDirectoryPath(getCacheDir());
        DiskCacheConfig diskCacheConfig = builder.build();
        ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
                .setMainDiskCacheConfig(diskCacheConfig)
                .build();
        Fresco.initialize(this,config);

如果有第三方登陆时需要加上下面的东西,5bee9b04b465f59645000020这个码是永久有效的,也可以用自己的
 UMConfigure.init(this,"5bee9b04b465f59645000020"
                ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
        UMConfigure.setLogEnabled(true);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值