3

我正在使用 Android MVP 架构,我正在关注Google MVP Architecture

当活动有多个片段时,我面临问题,在我的情况下,活动有 2 个选项卡。我无法理解,我应该为每个 Fragment 创建两个 Presenter 还是应该为此创建一个 Presenter?现在与 View 相同。

即使我在google-sample github repository上也没有找到任何解决方案。

谁能建议我或向我展示满足我上述要求的实时代码。

4

2 回答 2

0

我总是为活动中的不同片段创建不同的演示者/视图,除非它们在一定百分比上共享相同的方法。但是为了让事情更干净,我相信单独创建东西会更好。

1-您必须在片段的 onCreate() 方法中初始化您的演示者。为此,我总是有一个负责注入的依赖注册表类。

 public void inject(ReportingHistoryDetailsFragment fragment, ReportingHistoryResponse.TaskBean taskBean) {
        ReportingHistoryDetailsPresenter presenter = new ReportingHistoryDetailsPresenter(modelLayer,fragment,taskBean);
        fragment.configureWith(presenter);
    }

2-在我的片段中我调用

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        DependencyRegistry.shared.inject(this, taskBean);

    }

3-我的基本视图界面有

public interface BaseView <T> {

    void configureWith(T presenter);

}

如果您有多个由一个活动管理的片段,则每个片段都实现您的 View 接口并有一个相应的 Presenter 实现您的 Presenter 接口。

希望这可以帮助。

于 2018-04-03T04:06:01.770 回答
0

如果这两个片段相同,那么您可以使用相同的视图和演示者。如果片段是相同的,那么不同的视图和演示者会更好。

于 2018-03-29T17:07:25.350 回答