2015-10-26 47 views
2

我在Activity中有一個模型,並且此Activity中的Fragment需要訪問它。我目前通過Fragment包傳遞它,但爲什麼我不能從片段中的Activity訪問它?如果父Activity活動包始終有傳遞給Fragment的對象,則Fragment包的用途是什麼?

例如,我會使用此代碼片段的onCreate()內:

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

一般來說,爲什麼不能這永遠是方法,其中所述活性和片段共享對象,或在其中該活動將參數傳遞給片段?爲什麼需要碎片包?

回答

3

使用getActivity()使您的片段依賴於該特定的Activity類。如果您想在幾個不相關的活動中重複使用相同的片段,您可能需要避免這種情況。你也可以測試你的片段更容易

然後getActivity()並不總是可用的,它只能從片段的onActivityCreated()開始。有時候你想先傳遞參數,比如Fragment的onCreate(),所以你必須使用Bundle作爲

3

因爲Fragments可以從一個以上的Activities訪問。

相關問題