Android MVP中的一个Activity中的多个片段

时间:2018-03-27 18:40:53

标签: android mvp android-mvp android-architecture

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

当Activity有多个片段时我面临问题,在我的案例活动中有2个标签。我无法理解,我应该为每个片段创建两个Presenter还是我应该为此创建一个Presenter?与View相同。

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

任何人都可以向我推荐或向我展示符合我上述要求的实时代码。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我总是为活动中的不同片段创建不同的演示者/视图,除非他们在某个特定百分比上共享相同的方法。但是为了让事情变得更加干净,我相信分开创造事物会更好。

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

 public void inject(ReportingHistoryDetailsFragment fragment, ReportingHistoryResponse.TaskBean taskBean) {
        ReportingHistoryDetailsPresenter presenter = new ReportingHistoryDetailsPresenter(modelLayer,fragment,taskBean);
        fragment.configureWith(presenter);
    }
在我的片段中,我打电话给

@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界面的相应演示者。

希望这会有所帮助。