protected int getContentView() {
return R.layout.activity_main;
}
@Override
public void init() {
}
}
混淆配置
-keep com.xxx.xxx.xxx.PresenterVariable class * {*;}
-keep com.xxx.xxx.xxx.CreatePresenter class * {*;}
-keep class * {
com.xxx.xxx.xxx.PresenterVariable ;
com.xxx.xxx.xxx.CreatePresenter ;
}
-keepclassmembers class ** {
com.xxx.xxx.xxx.PresenterVariable ;
com.xxx.xxx.xxx.CreatePresenter ;
}
谢谢 @yswheye 指点。
编写 BasePresenter, BaseMvpView, BaseMvpActivity 等一些基础类
上面例子中有用到 BasePresenter, BaseMvpView, BaseMvpActivity 等一些基础类,这里给出一种例子,用户可根据自己需要去编写。
- BaseMvpView
BaseMvpView 是基础的 View 层接口:
public interface BaseMvpView {
void showError
(String msg);
void complete();
void showProgressUI(boolean isShow);
}
可以看到就是定义了一些公共的接口方法。其实这个接口可以不需要,但是一般为了方便,就写上吧。
- BasePresenter
BasePresenter 就是基础的 BasePresenter 了,作用也是实现一些公共的 Presenter 接口方法:
public class BasePresenter {
protected Context mContext;
protected V mView;
protected void onCleared() {
}
public void attachView(Context context, V view) {
this.mContext = context;
this.mView = view;
}
public void detachView() {
this.mView = null;
}
public boolean isAttachView() {
return this.mView != null;
}
public void onCreatePresenter(@Nullable Bundle savedState) {
}
public void onDestroyPresenter() {
this.mContext = null;
detachView();
}
public void onSaveInstanceState(Bundle outS