我需要使用模型-View-演示者(MVP)模式在我的应用程序中实现facebook登录,但问题实际上是如何避免向我的演示者注入(inject)对Activity的引用(这将否定MVP模式,因为演示者应该不包含平台组件)。LoginManager.getInstance().logInWithReadPermissions(this,Arrays.asList("email","public_profile"));如上所示,logInWithReadPermissins()函数将对Activity的引用作为参数。 最佳答案 在这个存储
我想使用具有MVP模式的Dagger2。所以我有这种情况,每个View都有自己的Component例如MyFragment有一个这样的组件:@PerFragment@Component(dependencies=ActivityComponent.class,modules=MyFragmentModule.class)publicinterfaceMyFragmentComponent{voidinject(MyFragmentfragment);}在MyFragmentModule中,我提供了一个Presenter和一个将在MyFragment中使用的模型@Modulepublic
最近,我尝试在我的android项目中使用MVP模式。我知道我不能在View层做业务逻辑工作。View必须将所有作品传递给Presenter层,然后等待Presenter的结果。View应该在UI线程中执行任何操作。但是Presenter可能会在Sub-Thread中做一些事情。如何控制View布局和Preseneter层中的多线程?我们将不胜感激任何帮助。 最佳答案 你有两个方向需要沟通:a)非UI到UI线程和b)UI线程到非UI线程。对于第一种情况,目前流行的方法是使用runOnUiThread()这是对这种技术和其他流行选项的
我正在尝试在我的android项目中实现MVP。但是当我使用viewPagerAdapter实现MVP时,我遇到了困难。为了实现MVP,我们过去常常在Activity类中创建fragment/view和presenter实例。Fragment/view和presenter都将使用契约相互通信。通过这种方式,我们将View与Presenter解耦,并通过单元测试覆盖所有业务逻辑。但是如果我们在activity中有tablayout。我们在fragmentPagerAdapter中启动了fragment。我不确定如何为其相应的演示者提供选项卡fragment/View引用。如果我在frag
我正在使用MVP设计模式。我呈现给我的View的模型目前是POJOS,它们是我本地Realm数据库的模型。也就是说,他们已经注释了与数据库相关的成员。使用演示者将从交互器返回的数据库模型映射到仅包含View应使用的数据的模型(我的View有一个单独的模型POJO)会更好吗?还是将View交给我的数据库模型是一种很好的做法?谢谢。 最佳答案 你要问的问题是IfIremovedRealmfrommyappwouldIhavetomakechangestomyviewifIusetheseentityclasses如果答案是否定的,那么我
我正在开发一个具有MVP架构的Android应用程序,我已经能够测试Presenter和Model类,但现在我正在尝试测试View方法。例如,我有以下观点:publicinterfaceSplashViewextendsBaseMVPView{voidinitPresenter();voidnavigateToHome();voidonError(ApiErrorapiError);}由Activity实现。publicclassSplashActivityextendsBaseActivityimplementsSplashView{//MVPPresenterprivateSpla
我一直在学习和整合MVP模式,几乎没有什么问题。我从这张图中了解到的是Activity将创建Presenter的实例,并将其引用和model对象传递给presenterMainPresentermainPresenter=newMainPresenter(this,newMainModel());接下来,如果演示者需要从本地偏好或远程存储或获取任何数据,它将询问模型。然后模型将请求存储库存储和检索数据。我遵循了一些教程,这就是我实现该模式的方式。界面publicinterfaceMainActivityMVP{publicinterfaceModel{}publicinterfaceV
我需要澄清一些关于mvp和mvvm设计模式的疑惑1)在更新View的mvp和mvvm中。演示者/View模型设置要在View中显示的数据或View从中检索数据演示者/View模型并显示它2)presenter和view-model之间有何不同。"MVVM使用数据绑定(bind)来更新View,而演示者使用更新View的传统方法”。是吗? 最佳答案 在MVP中,Presenter通常通过接口(interface)持有对View的引用。当Presenter计算新数据时,他负责在View/Interface上调用正确的方法来更新UI。在M
已经两个月了,我一直在使用MVPStructure来创建Android应用。正如我发现的关于MVP的每个链接中所解释的那样,Presenter类负责处理所有业务登录和数据(来自Model类),我理解并开始工作。教程中显示的优点之一,我想在这里强调,MVP使单元测试更容易,因为没有View的依赖性(好吧,我也明白这一点)。我不明白的是为什么要创建接口(interface)来更新演示者的View,而我只能调用一个将返回值的演示者方法,然后我可以在那里设置它?让我们来看看我上面谈到的优势(单元测试)。使用这些接口(interface)单元测试会出现更多问题,因为方法需要接口(interfac
我想要android中MVP结构的简单示例来刷新recyclerview项目而不是整个recyclerview列表。它只会刷新android的recyclerview中的项目。 最佳答案 这个问题我想了很多。有两种可能的方法:将新的数据列表传递给适配器,它会计算出更改的内容并更新正确的项目。记录模型中的当前项,然后在计算新列表时发送ListChangeItems到适配器。我将在下面更详细地概述两者。在这两种情况下,您都需要计算当前显示的数据与新数据之间的差异。我有一个辅助类ListDiffHelper哪个做这个比较:publiccl