1
0
mirror of https://github.com/WuXiaolong/AndroidMVPSample.git synced 2025-06-06 13:24:03 +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
public void onFailure(int code, String msg) {
public void onFailure(String msg) {
mvpView.getDataFail(msg);
}
@Override
public void onFinish() {
mvpView.hideLoading();

View File

@ -14,6 +14,7 @@ public interface MainView {
void getDataFail(String msg);
void showLoading();
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 onFailure(int code, String msg);
public abstract void onFailure(String msg);
public abstract void onFinish();
@ -38,9 +38,9 @@ public abstract class ApiCallback<M> extends Subscriber<M> {
if (code == 502 || code == 404) {
msg = "服务器异常,请稍后再试";
}
onFailure(code, msg);
onFailure(msg);
} else {
onFailure(0, e.getMessage());
onFailure(e.getMessage());
}
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.other.MvpActivity;
import com.wuxiaolong.androidmvpsample.retrofit.ApiCallback;
import com.wuxiaolong.androidmvpsample.retrofit.RetrofitCallback;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
/**
* 由Activity/Fragment实现View里方法包含一个Presenter的引用
@ -59,6 +58,7 @@ public class MainActivity extends MvpActivity<MainPresenter> implements MainView
}
@Override
public void showLoading() {
showProgressDialog();
@ -89,16 +89,24 @@ public class MainActivity extends MvpActivity<MainPresenter> implements MainView
private void loadDataByRetrofit() {
showProgressDialog();
Call<MainModel> call = apiStores.loadDataByRetrofit("101190201");
call.enqueue(new Callback<MainModel>() {
call.enqueue(new RetrofitCallback<MainModel>() {
@Override
public void onResponse(Call<MainModel> call, Response<MainModel> response) {
dataSuccess(response.body());
dismissProgressDialog();
public void onSuccess(MainModel model) {
dataSuccess(model);
}
@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());
}
@Override
public void onFinish() {
dismissProgressDialog();
}
});
@ -116,7 +124,7 @@ public class MainActivity extends MvpActivity<MainPresenter> implements MainView
}
@Override
public void onFailure(int code, String msg) {
public void onFailure(String msg) {
toastShow(msg);
}