1. 程式人生 > >Android面試篇之Activity與Fragment、Fragment與Fragment之間的通訊

Android面試篇之Activity與Fragment、Fragment與Fragment之間的通訊

Activity與Fragment

Activity向Fragment通訊

① 拿到Fragment的引用,直接呼叫其public方法。

② 如果Activity中未儲存任何Fragment的引用,每個Fragment都有一個唯一的TAG或者ID, 可以通過下面兩種方式獲得其引用

    ● getFragmentManager( ).findFragmentByTag(String tag) 這裡的tag可以是XML佈局檔案中定義的,也可以是通過事務FragmentTransaction動態新增進去的

    ● getFragmentManager( ).findFragmentById(int id)  這裡的id可以是XML佈局檔案中定義的,也可以是通過事務FragmentTransaction動態新增進去的

③ 在Activity裡使用 fragment.setArguments(bundle) 方法,通過Bundle傳遞資料,在Fragment裡使用Bundle bundle = getArguments()獲取資料。

Fragment向Activity通訊

① 在Fragment中可以通過 getActivity() 得到當前繫結的Activity的例項,然後進行操作。

② 在Fragment中定義介面,在Activity中進行介面回撥。

Fragment與Fragment

假設有F1 和 F2

① F1通過當前繫結的Activity拿到 F2的引用。

② 在F1中定義介面,在Activity中進行介面回撥,由Activity操作F2。

③ 通過廣播。

參考連結: