1
0
mirror of https://github.com/WuXiaolong/AndroidMVPSample.git synced 2025-06-07 13:54:04 +08:00
This commit is contained in:
xiaomolong 2016-10-13 11:31:39 +08:00
parent ff33498468
commit d33c9bc192
5 changed files with 63 additions and 12 deletions

View File

@ -27,10 +27,11 @@ public class MainPresenter extends BasePresenter<MainView> {
} }
@Override @Override
public void onFailure(int code, String msg) { public void onFailure(String msg) {
mvpView.getDataFail(msg); mvpView.getDataFail(msg);
} }
@Override @Override
public void onFinish() { public void onFinish() {
mvpView.hideLoading(); mvpView.hideLoading();

View File

@ -14,6 +14,7 @@ public interface MainView {
void getDataFail(String msg); void getDataFail(String msg);
void showLoading(); void showLoading();
void hideLoading(); void hideLoading();

View File

@ -18,7 +18,7 @@ public abstract class ApiCallback<M> extends Subscriber<M> {
public abstract void onSuccess(M model); public abstract void onSuccess(M model);
public abstract void onFailure(int code, String msg); public abstract void onFailure(String msg);
public abstract void onFinish(); public abstract void onFinish();
@ -38,9 +38,9 @@ public abstract class ApiCallback<M> extends Subscriber<M> {
if (code == 502 || code == 404) { if (code == 502 || code == 404) {
msg = "服务器异常,请稍后再试"; msg = "服务器异常,请稍后再试";
} }
onFailure(code, msg); onFailure(msg);
} else { } else {
onFailure(0, e.getMessage()); onFailure(e.getMessage());
} }
onFinish(); onFinish();
} }

View File

@ -0,0 +1,41 @@
package com.wuxiaolong.androidmvpsample.retrofit;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
/**
* Created by WuXiaolong
* on 2016/9/22.
* github:https://github.com/WuXiaolong/
* weibo:http://weibo.com/u/2175011601
* 微信公众号吴小龙同学
* 个人博客http://wuxiaolong.me/
*/
public abstract class RetrofitCallback<M> implements Callback<M> {
public abstract void onSuccess(M model);
public abstract void onFailure(int code, String msg);
public abstract void onThrowable(Throwable t);
public abstract void onFinish();
@Override
public void onResponse(Call<M> call, Response<M> response) {
if (response.isSuccessful()) {
onSuccess(response.body());
} else {
onFailure(response.code(), response.errorBody().toString());
}
onFinish();
}
@Override
public void onFailure(Call<M> call, Throwable t) {
onThrowable(t);
onFinish();
}
}

View File

@ -10,13 +10,12 @@ import com.wuxiaolong.androidmvpsample.mvp.main.MainPresenter;
import com.wuxiaolong.androidmvpsample.mvp.main.MainView; import com.wuxiaolong.androidmvpsample.mvp.main.MainView;
import com.wuxiaolong.androidmvpsample.mvp.other.MvpActivity; import com.wuxiaolong.androidmvpsample.mvp.other.MvpActivity;
import com.wuxiaolong.androidmvpsample.retrofit.ApiCallback; import com.wuxiaolong.androidmvpsample.retrofit.ApiCallback;
import com.wuxiaolong.androidmvpsample.retrofit.RetrofitCallback;
import butterknife.Bind; import butterknife.Bind;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
/** /**
* 由Activity/Fragment实现View里方法包含一个Presenter的引用 * 由Activity/Fragment实现View里方法包含一个Presenter的引用
@ -59,6 +58,7 @@ public class MainActivity extends MvpActivity<MainPresenter> implements MainView
} }
@Override @Override
public void showLoading() { public void showLoading() {
showProgressDialog(); showProgressDialog();
@ -89,16 +89,24 @@ public class MainActivity extends MvpActivity<MainPresenter> implements MainView
private void loadDataByRetrofit() { private void loadDataByRetrofit() {
showProgressDialog(); showProgressDialog();
Call<MainModel> call = apiStores.loadDataByRetrofit("101190201"); Call<MainModel> call = apiStores.loadDataByRetrofit("101190201");
call.enqueue(new Callback<MainModel>() { call.enqueue(new RetrofitCallback<MainModel>() {
@Override @Override
public void onResponse(Call<MainModel> call, Response<MainModel> response) { public void onSuccess(MainModel model) {
dataSuccess(response.body()); dataSuccess(model);
dismissProgressDialog();
} }
@Override @Override
public void onFailure(Call<MainModel> call, Throwable t) { public void onFailure(int code, String msg) {
toastShow(msg);
}
@Override
public void onThrowable(Throwable t) {
toastShow(t.getMessage()); toastShow(t.getMessage());
}
@Override
public void onFinish() {
dismissProgressDialog(); dismissProgressDialog();
} }
}); });
@ -116,7 +124,7 @@ public class MainActivity extends MvpActivity<MainPresenter> implements MainView
} }
@Override @Override
public void onFailure(int code, String msg) { public void onFailure(String msg) {
toastShow(msg); toastShow(msg);
} }