我使用Mosby使用MVP模式构建应用程序。这是规则之一:Don'tuseandroidlibrarycodeinPresenter.但是如果我想从Presenter记录一些东西怎么办?我看到的唯一方法是使用System.out.println();但这听起来不太好。有什么想法吗? 最佳答案 不在Presenter中使用Android库代码的原因是,当您开始编写单元测试时,您的类中的Android代码没有依赖性,因此它可以直接在JVM上运行。如果您发现自己需要使用Android代码,那么我这样做的方法是将其隐藏在界面后面。这样,您就
为了使用mvp模式在android上实现“整洁”的架构,建议将android框架视为插件,并且不要将任何android感知依赖项泄漏到演示层中。使用rxjava,如果我有一个设计用于将数据“推送”到View层的演示器,我可能希望有这样的逻辑:publicinterfaceSearchPresenter{interfaceViewLayer{voidupdateResults(ListsearchResults)}voidbind(ViewLayerviewLayer);voidunbind();}publicclassSearchPresenterImplimplementsSearc
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion老实说,我无法理解所有这些MVP和与Android相关的类似内容:它的真正意义是什么?到目前为止,我认为在Android中使用MVP的唯一实际原因是从框架类(即Activities、Services、Fragments...)中“提取”可单元测试的代码fragment,否则很难(或不可能))进行测试。这很好,但这样一来,Activity(和其他框架类)最终会在可能的情况下(即在处理与框架无
谁能告诉我应该根据MVP架构将AlertDialogs放在应用程序的什么位置?我应该将它们留在我的Activity中还是放在Presenter中? 最佳答案 由于MVP不是一个特定的平台原则,它可以用来编写与平台无关的应用程序。由于M和P很容易用纯Java编写(对于M并不总是如此,但对于P几乎总是如此),V实际上是目标平台的一个组件(例如,Swing、GWT、JavaFX、Android,甚至CLI[命令行界面])。假设您编写了这样一个跨平台应用程序并且您有一个特定的ViewINotificationView声明如下:publici
我用MVP方法做了一些Android应用,但我不太确定将同一特征的不同层对象放在同一个包中是否更好?还是将不同功能的所有层项目打包在同一个包中,并在上面加上层名称?(我的意思是这样的)目前,我遵循第二条规则,但这是最佳实践吗?编辑:这是我项目的全部包!:) 最佳答案 只是把我的想法融入其中。我已经使用这些方法中的每一种来处理项目。我现在的偏好是按功能打包。我更喜欢这种方法有两个主要原因:易于归纳对于刚接触代码库的开发人员,提高了项目结构的可见性。当与单个功能相关的类组合在一起时,新团队成员可以更轻松地快速了解所有内容是如何组合在一起
我有一个托管多个fragment的Activity,这些fragment定义了用户注册流程中的每个步骤。流程很复杂,下一步由前面步骤中的用户操作定义。流程如下:MainActivity|Fragment1-->Fragment2-->Fragment3-->Fragment4\-->Fragment5-->Fragment6在MVP之后,我为每个涉及的fragment设置了View和Presenter。我关心的是如何以MVP方式在Fragment和Activity之间进行通信。每个Fragment的结果都需要提供给Activity,以决定接下来需要显示哪个Fragment。我想到的一种
我计划在我的新Android项目中使用MVP模式。我已经完成了一些示例代码,我想知道,我是否正确地实现了它?请对代码提出意见并发表您的建议。我的Activity类我正在从我的BaseView类中扩展它,并且我正在实现一个接口(interface)。此Activity只是在新线程中调用网络服务并更新TextView中的值。publicclassCougarTestViewextendsBaseViewimplementsICougarView,OnClickListener{CougarTestPresenter_presenter;publicStringactivityName="C
我发现自己需要在用户单击View上的按钮时播放声音文件。MediaPlayer需要创建上下文。放置MediaPlayer初始化代码的最佳方式是什么?我应该将上下文传递给演示者方法并在那里播放吗?或者只在View上播放是否可以。 最佳答案 Context是MVP中AndroidView层的一部分,所以Presenter一定不知道它,你不应该传递它致主持人。你必须向你的View接口(interface)添加一个方法并在你的androidView组件(即Activity或Fragment)中实现它并使用他们在播放声音时在View层中执行操
您如何对待MVP模式中的适配器?例如,在这个项目中https://github.com/msahakyan/nested-recycler-view有一个MovieAdapter,https://github.com/msahakyan/nested-recycler-view/blob/master/app/src/main/java/com/android/msahakyan/nestedrecycler/adapter/MovieAdapter.java这个人在这个适配器中有一个recyclierview作为项目,(如果你看他的项目,他在他的主屏幕中嵌套了recycliervie
我有一个使用MVP架构的AndroidStudio项目。这种风格的项目的建议包结构是什么我们可以做到:app:screen_nameactivityApresenterAinterfaceAor:activitiesactivityAactivityBpreentorspresentorApresentorBetc 最佳答案 您的问题只是UIMVP架构模式的一部分。这是View类及其相应的Presenters。更好的解决方案是第一种方法。应用程序应该根据特性来打包,而不是根据常用功能来打包。我们应该将一起更改/修改的类组合在一起。一