已经两个月了,我一直在使用MVPStructure来创建Android应用。正如我发现的关于MVP的每个链接中所解释的那样,Presenter类负责处理所有业务登录和数据(来自Model类),我理解并开始工作。教程中显示的优点之一,我想在这里强调,MVP使单元测试更容易,因为没有View的依赖性(好吧,我也明白这一点)。我不明白的是为什么要创建接口(interface)来更新演示者的View,而我只能调用一个将返回值的演示者方法,然后我可以在那里设置它?让我们来看看我上面谈到的优势(单元测试)。使用这些接口(interface)单元测试会出现更多问题,因为方法需要接口(interfac
我是AndroidMVP架构的新手。据我研究,Presenter应该不受任何android事物的影响,例如:不要在主持人。我编写了以下代码,其中BasePresenter是我将使用的所有Presenter类的父类。BaseView接口(interface)是所有View类和BaseActivity类的父接口(interface)是所有Activity类的父类。我有多个Activity,并且需要在我的所有Activity中显示Toast消息。所以我写了下面的代码如下。我不太确定使用Presenter类中的getactivity是否是一个好习惯。如果不是,那么有人可以建议更好的方法吗?Ba
我已经试了一个星期了。我已经抓取了所有可用的文章,但它们的实现或示例不尽如人意或停留在Espresso测试的步骤。我的Android应用程序遵循MVP架构(并且是在Java中)场景:[仅举一个例子]我有一个使用Dagger2获取HomePresenter的HomeActivity。(在通过HomeComponent中的voidinject(HomeActivityactivity)公开的HomeModule中提供方法。在我的HomeActivity的espressoTest中,我想注入(inject)一个mockpresent。我没有通过AppComponent在AppModule中公
我想使用MVP模式构建Android应用。我有一个fragment(View)和一个演示者类。我想要的基本上是将演示者注入(inject)到fragment中,并将fragment设置为演示者的View(通过View将实现的接口(interface))如何使用依赖注入(inject)(使用Dagger2)轻松正确地连接两者?编辑:此外,我希望演示者是一个单例,这样它就能够在方向改变时保持数据和状态 最佳答案 首先你需要定义一个presenter模块:@ModuleclassSearchPresenterModule{@NonNu
我正在尝试遵循MVP模式。但是,我对如何处理此模式的适配器和View持有者有一些疑问。我应该将适配器用作演示者吗?有业务逻辑?或者我应该传递一个处理列表逻辑的呈现器实例,然后在与适配器元素进行任何交互时调用呈现器的方法吗?谢谢 最佳答案 在Android中实现MVP没有准确/正确的定义为了回答您的问题,在我看来,Presenter不应该有任何Android逻辑。因此,Adapter将是一个“View”,即Presenter向它提供数据(通过Activity或fragment),它只是处理如何呈现这个。我会按照以下方式做MVP。模型-
首先,我知道ModelViewPresenter有不同的实现方式,在我看来,只要您明确定义了抽象层并履行指定的职责,那么您如何实现此模式就有待解释。我已经在很多只有一个Activity的应用程序中实现了这种模式。我现在开始了一个新项目,它有多个Activity并附加了Fragments,包括嵌套fragment(ViewPager)。我现在正在尝试将MVP转化为这个项目,但我遇到了概念障碍,想要一些指导和见解。到目前为止,我已经创建了上述结构并开始与View&Presenter建立1:1的关系(无论是Activity还是Fragment)。我觉得这没问题,但是,例如,如果我从Activ
我正在将一个应用程序从WindowsMobile移植到Android,但遇到了一些问题。现有应用程序使用MVP模式并具有不同的“演示者”类,这些类将在端口中重用(这是一个相当广泛的应用程序,重写它是不可能的,C#代码全部使用monoforandroid重用).这些采用实现接口(interface)的View,在android中,我通过创建实现适当接口(interface)的Activity、实例化演示者并将它们自己作为参数传递来实现。这一切似乎都可以很好地满足我们的目的,或者直到IceCreamSandwich问世并且我尝试使用fragment来实现它。相当多的Activity使用选项
问题:非常庞大且复杂的Activity类。难以阅读/理解和修改。难以测试。可能的解决方案:Model-View-Presenter(可能使用依赖注入(inject))。和模拟测试对象!我正计划在我的Android应用程序中实现模型-View-展示器。这基本上是模型-View-Controller的变体。本质上,让Activity一个美化的布局管理器,并将任何业务逻辑推迟到Presenter。另一种看待Presenter的方式是,它就像一个在Activity中实例化的Helper类,通过Activity提供Presenter可以使用的接口(interface)/回调来完成繁重的工作。我想
我一直在关注Google提供的MVP设计模式重构我的应用程序。我有一个MainActivity和许多fragment,为每个fragment创建一个Activity对我来说似乎并不麻烦,所以我一直在考虑在fragment中注册演示者。我看到的是每个fragment都注册了自己的演示者,但我不确定它错了多少......:)这是我的演示者:publicclassFirstPresenterimplementsFirstContract.Presenter{privatefinalFirstContract.ViewmView;publicFirstPresenter(FirstContra
在我的应用程序中,我使用ContentProvider并使用LoaderManager.LoaderCallbacks.fragment(View)publicclassArticleCatalogFragmentextendsBaseFragmentimplementsArticleCatalogPresenter.View,LoaderManager.LoaderCallbacks{@OverridepublicLoaderonCreateLoader(intid,Bundleargs){returnonCreateArticleCatalogLoader(args);}@Over