参考原文:https://www.jianshu.com/p/bbb3b77d47eb

GoogleMVP机制:https://blog.csdn.net/jungle_pig/article/details/65626469

1、activity与fragment传值

当activity动态加载fragment时可以通过fragment的setArguments()传入值;

在fragment类中通过fragment的getArguments()方法获得传入的值 ;

MVP结构图:

参考原文:https://blog.csdn.net/swust_zeng_zhuo_k/article/details/78760947 创建MVP模式是需要经过一下几个步骤: 1、创建IPresenter接口,把所有的业务逻辑的接口搜放在这里,并创建他的实现PresenterImpl, 2、创建IView接口,把所有的视图逻辑的接口都放在这里,其实现类是Activity/Fragment 3、由UML试图可以看出,Activity包含了一个IPresenter,而PresenterImpl包含了IVew并依赖了Model,     Activity只保留了对IPresenter的调用,其他的都放在PresenterImpl中实现, 4、model并不是必须有的,但是一定会有Presenter和View 

注意:虚线三角箭头:实现;虚线箭头:依赖; 实线三角:关联

 

Google提出的一种MVP实现方式,步骤:

1.BasePresenter

2.BaseView

两个接口分别作为Presenter和View的基类,仅定义了最基本的方法,具体页面的view和presenter则分别定义继承的接口,添加属于自己页面的方法。

3.Contract 契约类

这是Google MVP与其他实现方式的不同之一,契约类用于定义同一个界面的view和presenter的接口,通过规范的方法命名或注释,可以清晰的看到整个页面的逻辑。

4.具体的Impl类

Fragment实现View接口,这里使用Google推荐的创建Fragment实例的static方法newInstance(),将fragment必备的参数传入。

 

Presenter实现类,提供一个参数为对应View的构造器,持有View的引用,并调用View的setPresenter()方法,让View也持有Presenter的引用,方便View调用Presenter的方法。

5.最后就是Activity

创建view以及presenter实例,并将二者联系起来。

 下图是Google官方Demo:todo-mvp模式的架构图

 

更多相关文章

  1. Android全屏与非全屏问题
  2. Android中界面实现全屏显示的两种方式
  3. android驱动学习---led实验
  4. 基于Platinum库的DLNA开发
  5. android数据库使用小结
  6. Android(安卓)MVP 一行代码轻松解决框架替换
  7. Android相关知识
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android调用输入法软键盘,返回输入的内容
  2. android中使用afinal一行代码显示网络图
  3. Android文件系统保护——dmverity
  4. Camera Flash的获得权限
  5. 2.5.3 使用alertDialog创建自定义对话框
  6. Android 已发行多年,移动 App 已经趋近饱
  7. Fetching https://dl-ssl.google.com/and
  8. 登录案例_android
  9. Android统计图集合源码
  10. 另类方法屏蔽Android4.03的HOME按键