博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mvp官方示例
阅读量:5762 次
发布时间:2019-06-18

本文共 2341 字,大约阅读时间需要 7 分钟。

##一、描述

此文章介绍官方的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(List
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) {            }}复制代码

转载于:https://juejin.im/post/5b3ac52e6fb9a024be230851

你可能感兴趣的文章
Python数据分析:pandas常用函数
查看>>
KVO原理分析及使用进阶
查看>>
Vue系列(四):模块化开发、Elment UI、自定义全局组件(插件)、Vuex
查看>>
【348天】每日项目总结系列086(2018.01.19)
查看>>
extjs-mvc结构实践(五):实现用户管理的增删改查
查看>>
【JS基础】初谈JS现有的数据类型
查看>>
【294天】我爱刷题系列053(2017.11.26)
查看>>
Microsoft发布了Azure Bot Service和LUIS的GA版
查看>>
Google发布Puppeteer 1.0
查看>>
窗口进度条及其高级使用
查看>>
实录分享&视频 | 微软Visual Studio Code是这样支持Docker的
查看>>
.NET开源现状
查看>>
Dave Farley:持续交付的基本原理
查看>>
可替换元素和非可替换元素
查看>>
2016/08/25 The Secret Assumption of Agile
查看>>
(Portal 开发读书笔记)Portlet间交互-PortletSession
查看>>
搭建vsftpd服务器,使用匿名账户登入
查看>>
AMD改善Linux驱动,支持动态电源管理
查看>>
JAVA中循环删除list中元素的方法总结
查看>>
Java虚拟机管理的内存运行时数据区域解释
查看>>