2012-02-18 65 views
8

Activity可能会膨胀一个任意布局xml,其中可能有或可能没有Fragment占位符。活动是否有办法知道刚刚创建了哪个片段?

如果有,Fragment将被实例化并附加到Activity

有没有办法从Activity中得到对Fragment的引用?

FragmentManger.findFragmentById()假设您事先知道该ID以使其正常工作,但在这种情况下,我提议,它不可用。

我理想的行为是Activity知道任何Fragment附加到它,以便它可以响应它。

回答

25

无论何时一个片段被附加到一个活动中,下面的回调方法被调用时附带的片段作为参数,您可以使用它存储引用。

onAttachFragment(Fragment fragment) 

http://developer.android.com/reference/android/app/Activity.html#onAttachFragment(android.app.Fragment)

+0

uggh我是个瞎子,THX – 2012-02-18 11:58:40

+0

该死的,onAttachFragment告诉你什么时候该片段连接,但它不会告诉你,当它准备与IE后fragment.onActivityCreated() – 2012-02-18 13:44:09

+5

来工作了你可以在你的片段中有一个回调,就像你的活动实现的片段中的一个接口一样......所以当片段准备就绪时,你可以调用回调...为了使用它,你可以在onAttachFragment中设置活动的引用。 ..这可能也有帮助 http://developer.android.com/guide/topics/fundamentals/fragments.html#Communica tingWithActivity – iago 2012-02-18 15:43:33

相关问题