参考原文: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结构图:

Android的碎片fragment和activity之前的关系 以及MVP模式详解_第1张图片

参考原文: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的接口,通过规范的方法命名或注释,可以清晰的看到整个页面的逻辑。

Android的碎片fragment和activity之前的关系 以及MVP模式详解_第2张图片

4.具体的Impl类

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

 

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

Android的碎片fragment和activity之前的关系 以及MVP模式详解_第3张图片

5.最后就是Activity

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

Android的碎片fragment和activity之前的关系 以及MVP模式详解_第4张图片

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

Android的碎片fragment和activity之前的关系 以及MVP模式详解_第5张图片

 

更多相关文章

  1. android跳转到手机系统默认应用市场的方法
  2. android启动模式android:launchMode
  3. 关于微信登陆报错的解决方法 Caused by: java.lang.IllegalState
  4. Appium Android 元素定位方法 原生+H5
  5. Android aidl接口远程调用
  6. Android 飞行模式的设置(打开/关闭飞行模式,获取飞行状态状态)
  7. 学习笔记_android四种点击事件方法
  8. android 执行monkey指令的方法

随机推荐

  1. 1109标签练习
  2. 我的第一个作业
  3. 2021年11月9日作业1
  4. 樱花怎么画?超详细樱花画法步骤!
  5. 用户注册作业
  6. 2021.11.9 作业
  7. 大前端第二天第一个作业
  8. HTML 练习
  9. Vue介绍及Vue脚手架安装
  10. 11月9日 走进HTML的世界