如果父Activity包总是具有传递给Fragment的对象,那么Fragment包的目的是什么?

时间:2015-10-26 20:34:59

标签: android android-fragments bundle fragment-lifecycle

我在Activity中有一个模型,此Activity中的Fragment需要访问它。我目前正在通过Fragment包传递它,但为什么我不能从片段中的Activity访问它?

例如,我会在片段onCreate()中使用此代码:

Model model = ((ActivityWithModel) getActivity).getModel();

一般来说,为什么这总是不能成为Activity和Fragment共享对象的方法,或者Activity将参数传递给Fragment的方法?为什么需要Fragment包?

2 个答案:

答案 0 :(得分:3)

因为可以从多个Fragments访问Activities

答案 1 :(得分:3)

使用getActivity()使您的Fragment依赖于该特定的Activity类。如果您想在几个不相关的活动中重复使用相同的片段,您可能希望避免这种情况。您还可以更轻松地测试片段

然后getActivity()并不总是可用,它只能从Fragment的onActivityCreated()开始提供。有时你想先传递参数,比如片段的onCreate(),所以你必须使用Bundle