##一、描述
此文章介绍官方的MVP示例 方便的MVP开源库框架:Moxy
##二、使用说明
首先创建两个接口基础类:
public interface BaseView<T> {
void setPresenter(T t);
}
public interface BasePresenter {
void start();
}
接着当一个页面需要P层时,开始创建一个ConStact契约类,此契约类就是统一定义这个模块的P和V的所有方法。
public interface WeixinHotConstact {
interface View extends BaseView<Presenter> {
void onRequestSuccess(List<NewListResponse.NewList> newListResponses);
void onRequestFail(String error);
void onRequestStart();
}
interface Presenter extends BasePresenter {
void loadWeixinHotList(String num, String rand, String word, String page, String src);
}
}
View层:
/**
* 描述:微信热点
* 作者:卜俊文
* 创建:2016/11/14 10:49
* 邮箱:344176791@qq.com
*/
public class WeiXinHotFragment extends Fragment implements WeixinHotConstact.View {
private WeixinHotConstact.Presenter presenter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// TODO: inflate a fragment view
View rootView = super.onCreateView(inflater, container, savedInstanceState);
new WeixinHotPresenter(this); //此处就把自身赋值到P层了
return rootView;
}
@Override
public void setPresenter(WeixinHotConstact.Presenter presenter) {
this.presenter = presenter;
}
/**
* 描述:请求成功
* 作者:卜俊文
* 邮箱:344176791@qq.com
* 创建时间: 2016/11/16 8:36
*/
@Override
public void onRequestSuccess(List<NewListResponse.NewList> newListResponses) {
}
/**
* 描述:请求失败
* 作者:卜俊文
* 邮箱:344176791@qq.com
* 创建时间: 2016/11/16 8:36
*/
@Override
public void onRequestFail(String error) {
}
/**
* 描述:开始请求
* 作者:卜俊文
* 邮箱:344176791@qq.com
* 创建时间: 2016/11/16 16:24
*/
@Override
public void onRequestStart() {
Toast.makeText(getActivity().getApplicationContext(), "开始请求", Toast.LENGTH_SHORT).show();
}
}
Presenter :
public class WeixinHotPresenter implements WeixinHotConstact.Presenter {
private WeixinHotConstact.View view;
public WeixinHotPresenter(WeixinHotConstact.View view) {
this.view = view;
view.setPresenter(this);
}
@Override
public void start() {
}
@Override
public void loadWeixinHotList(String num, String rand, String word, String page, String src) {
}
}