ViewController-Presenter-Interact
全部标签 我正在尝试遵循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
我很难尝试将数据发送到第二个ViewController。更具体地说,我正在解析网站并将特定元素放入对象中。从那里,我试图将响应发送到另一个视图控制器。我已经在应用程序中完成了一次,但是我不确定这次我做错了什么。VC1:overridefuncprepare(forsegue:UIStoryboardSegue,sender:Any!){guardletassignments=senderasAnyObjectas?[Assignment],letsendMe=segue.destinationas?ClassTableViewControllerelse{return}sendMe.myAs
假设我有一个ViewController(VCA)这推动了QRCodesCannerViewController(VCB)。什么时候(VCB)扫描一些东西,它将推动ResultViewController(VCC).-这些3视图连接到UINAVITATION控制器-用户单击“后面”按钮(VCC)我的问题是:1)我怎么知道是否(VCB)在没有更改代码的情况下可见(VCB)?(VCB)是一个豆荚2)我在哪里放置此代码?我只能访问(VCA)我尝试在(VCA)但是什么都没有发生overridefuncviewDidDisappear(_animated:Bool){if(vcB.isViewLoade
使用Railscast示例,我为演示者编写了规范,其中包括ActionView::TestCase::Behavior并将view方法传递给演示者。spec/spec_helper.rb:...config.includeActionView::TestCase::Behavior,:example_group=>{:file_path=>%r{spec/presenters}}...spec/presenters/order_presenter_spec.rb:require'spec_helper'describeOrderPresenterdodescribe"#subtotal
android.permission.INTERACT_ACROSS_USERS_FULL是什么权限及其作用是什么1.android.permission.INTERACT_ACROSS_USERS_FULL权限1.android.permission.INTERACT_ACROSS_USERS_FULL权限android.permission.INTERACT_ACROSS_USERS_FULL权限允许应用程序在所有用户之间进行交互。这包括在其他用户的应用程序中创建活动、发送广播和执行其他操作。此权限仅适用于系统应用程序和具有特殊权限的应用程序。如果您需要此权限,请在您的应用程序的清单文件中