我有两个Activity
Fragments
。我决定为每个人提供一个演示者" view"。因此主要活动的1个主持人,第一个片段的1个主持人和第二个片段的1个主持人。
我有一些用例,我不知道代码在哪里。
第一个是使用片段管理器管理片段的位置?我是否必须进行类似" beginTransaction()的调用。添加"在活动中或在他的主持人中?
第二个是,当用户点击活动中的按钮时,我会在当前片段中做一些事情。我是否必须调用活动的演示者来调用片段的方法,或者直接在我称之为片段方法的活动中的onClick方法中?
PS:我不想使用任何lib / framework
答案 0 :(得分:3)
第一个是使用片段管理器管理片段的位置?我 必须在活动中或在中执行“beginTransaction()。add”之类的调用 他的节目主持人?
与Android API相关的所有内容都应位于Activity
内。因此,beginTransaction()
是FragmentManager
的一种方法,这是Android API的一部分。 Activity
是您的应用和操作系统之间的合同。演示者甚至不应该知道它用于Android应用程序。例如,如果您按下Activity
内的按钮,它会像这样:
您在Activity中的内部事件处理程序方法执行此操作:
致电activityPresenter.onButtonClicked()
,它会拨打activityView.presentWhatTheButtonClickDid()
第二个是,当用户点击活动中的按钮时,我就到了 在当前片段中做一些事情。我必须打电话给 活动的演示者将调用片段的方法 想要,或直接在我称之为活动的onClick方法中 片段的方法?
您可以通过其演示者间接调用Fragment方法。
活动内部的内部事件处理程序方法:
致电activityPresenter.onButtonClicked()
,然后拨打电话
fragmentPresenter.onButtonClicked()
它会调用
fragmentView.presentResult()
因此,正如您所看到的,Activitiy的演示者需要知道Fragment的演示者。
*您不应在其名称中为您的演示者命名为“activity”或“fragment”以保持抽象。我这只是为了简单起见。