##一、描述
此文章介绍官方的MVP示例 方便的MVP开源库框架:
##二、使用说明
首先创建两个接口基础类:public interface BaseView{ void setPresenter(T t);}复制代码
public interface BasePresenter { void start();}复制代码
接着当一个页面需要P层时,开始创建一个ConStact契约类,此契约类就是统一定义这个模块的P和V的所有方法。
public interface WeixinHotConstact { interface View extends BaseView{ void onRequestSuccess(List 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(ListnewListResponses) { } /** * 描述:请求失败 * 作者:卜俊文 * 邮箱: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) { }}复制代码