我正在使用 Android MVP 架构,我正在关注Google MVP Architecture。
当活动有多个片段时,我面临问题,在我的情况下,活动有 2 个选项卡。我无法理解,我应该为每个 Fragment 创建两个 Presenter 还是应该为此创建一个 Presenter?现在与 View 相同。
即使我在google-sample github repository上也没有找到任何解决方案。
谁能建议我或向我展示满足我上述要求的实时代码。
我正在使用 Android MVP 架构,我正在关注Google MVP Architecture。
当活动有多个片段时,我面临问题,在我的情况下,活动有 2 个选项卡。我无法理解,我应该为每个 Fragment 创建两个 Presenter 还是应该为此创建一个 Presenter?现在与 View 相同。
即使我在google-sample github repository上也没有找到任何解决方案。
谁能建议我或向我展示满足我上述要求的实时代码。
我总是为活动中的不同片段创建不同的演示者/视图,除非它们在一定百分比上共享相同的方法。但是为了让事情更干净,我相信单独创建东西会更好。
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 接口。
希望这可以帮助。
如果这两个片段相同,那么您可以使用相同的视图和演示者。如果片段是相同的,那么不同的视图和演示者会更好。