我正在使用Android MVP架构,我正在关注Google MVP Architecture。
当Activity有多个片段时我面临问题,在我的案例活动中有2个标签。我无法理解,我应该为每个片段创建两个Presenter还是我应该为此创建一个Presenter?与View相同。
即使我没有在google-sample github repository上找到任何解决方案。
任何人都可以向我推荐或向我展示符合我上述要求的实时代码。
答案 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界面的相应演示者。
希望这会有所帮助。