[英]Call method on a fragment from another fragment
如何從另一個片段調用一個片段的方法?
我試過了:
Fragment fragmentName = (fragmentName) getFragmentManager().findFragmentByTag("fragmentTag");
fragmentName.method();
但這是一個空指針。
非常感謝。
您不應該在片段之間直接進行通信(可能會出現子片段)。 而是將您的活動用作調解人。
FragmentA {
public void sendMessageToB(String message) {
((MainActivity)getActivity()).sendMessageToB(message);
}
}
FragmentB {
public void receiveMessage(String message) {
}
}
MainActivity {
public void sendMessageToB(String message) {
// or findById if defined in XML (same as with Views)
FragmentB fragment = (FragmentB) getFragmentManager().findFragmentByTag("FragmentB");
if (fragment != null && fragment.isAdded()) {
fragment.receiveMessage(message);
}
}
}
盡管實際上可以使用這樣的代碼,但這可能不是一個好習慣,因為您正在兩個片段之間創建依賴關系。
空指針的出現可能是因為在代碼運行時,另一個片段仍未初始化。 您可能僅在初始化目標之后才使用某些活動或片段生命周期方法(如onAttach)來運行代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.