2014-07-21 39 views

回答

0

您需要定義一個接口並在接口中調用一個方法。另一個片段將實現該接口,當該方法被調用時,您將調用所需的方法。

希望它有幫助。

編輯:

這是一個計算策略,我會建議。在我的場景中,FragmentA是調用你的方法的一個,FragmentB是包含該方法的一個。

在fragmentA

public interface FragmentContainer { 
    void onMethodThatYouWantToBeFired(); 
} 

定義這個接口在onAttach,做這樣的事情:

@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    Fragment parentFragment = getParentFragment(); 
    if (parentFragment == null) { 
     mFragmentContainer = (FragmentContainer) activity; 
    } else { 
     mFragmentContainer = (FragmentContainer) parentFragment; 
    } 
} 

讓你的活動實現YourFragment.FragmentContainer並覆蓋onMethodThatYouWantToBeFired方法無效();
當此方法被觸發時,調用在FragmentB中註冊的偵聽器。當監聽器被觸發,那麼你可以調用FragmentB你感興趣的方法。

我希望它可以幫助你。

+0

並且有一個問題,我無法解決。片段B實現監聽器,這部分很簡單。但是,片段A如何初始化偵聽器並使用它的方法呢? – Yarh

+0

你應該使用你的活動來讓你的片段相互溝通。 – AlexBalo

+0

我寫了一個大綱,說明如何實現您的場景。我希望它對你有用。 – AlexBalo

0

片段意在被重新使用...也就是說,彼此之間的兩個片段應當不直接傳遞數據。相反,您應該在活動中定義一個callback method。這將確保您可以在您的應用程序中的其他應用程序(以及您製作的其他應用程序)中重新使用您的片段。

+0

重新使用,這正是我對通信感興趣的原因。我想更新數據而不是重新創建片段。 – Yarh

+0

如果需要,可以使用Bundle在它們之間傳遞數據。這裏已經有一個線程。去谷歌上查詢。 –

+0

我不需要路徑數據,我需要調用方法 – Yarh

相關問題