Android的碎片fragment和activity之前的关系 以及MVP模式详解
参考原文: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模式的架构图
更多相关文章
- Android全屏与非全屏问题
- Android中界面实现全屏显示的两种方式
- android驱动学习---led实验
- 基于Platinum库的DLNA开发
- android数据库使用小结
- Android(安卓)MVP 一行代码轻松解决框架替换
- Android相关知识
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用