0
如何调用另一个片段的片段的方法?来自另一个片段的片段的调用方法
我想:
Fragment fragmentName = (fragmentName) getFragmentManager().findFragmentByTag("fragmentTag");
fragmentName.method();
但它是一个空指针。
非常感谢。
如何调用另一个片段的片段的方法?来自另一个片段的片段的调用方法
我想:
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)来运行代码。
您不要在保存片段的活动上调用方法,然后让活动调用第二个片段上的方法。 – cYrixmorten
怎么样?你能给我一个样品吗? –