compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
implementation 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
compile 'io.reactivex:rxandroid:1.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
compile 'com.facebook.fresco:fresco:0.11.0'
compile 'com.github.bumptech.glide:glide:3.6.1'
Api
public class Api {
//http://120.27.23.105/product/getCarts
public static final String URL = "http://120.27.23.105/";
}
ApiService
public interface ApiService {
@GET("product/getCarts")
Observable<SupperInfo> getGoods(@Query("uid") String uid);
}
M层:Model
public class Model implements IModel {
@Override
public void getGoods(String uid, final IPersenter iPersenter) {//getGoods是IModel中的
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Api.URL)
.addConverterFactory(GsonConverterFactory.create(new Gson()))
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
ApiService apiService = retrofit.create(ApiService.class);
Observable<SupperInfo> observable = apiService.getGoods(uid);
observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<SupperInfo>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
if (iPersenter!=null){
iPersenter.onFailed(e.getMessage());
}
}
@Override
public void onNext(SupperInfo listBean) {
if (iPersenter!=null){
iPersenter.onSuccess(listBean);
}
}
});
}
}
————————
新增:
public interface IModel {
void getGoods(String uid, IPersenter iPersenter);
}
public interface IPersenter {
void onSuccess(Object o);
void onFailed(String s);
void getGoods(String uid);
void onDestory();
}
public class Persenter implements IPersenter {
private IMainActivity iMainActivity;
Model model;
public Persenter(IMainActivity iMainActivity) {
this.iMainActivity = iMainActivity;
model = new Model();
}
@Override
public void onSuccess(Object o) {
if (iMainActivity!=null){
iMainActivity.onSuccess(o);
}
}
@Override
public void onFailed(String s) {
if (iMainActivity!=null){
iMainActivity.onFailed(s);
}
}
@Override
public void getGoods(String uid) {
model.getGoods(uid,this);
}
@Override
public void onDestory() {
if (iMainActivity!=null){
iMainActivity=null;
}
}
}
public interface IMainActivity {
void onSuccess(Object o);
void onFailed(String s);
}
private Persenter persenter;
persenter = new Persenter(this);
persenter.getGoods("" + i);