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);