2014-07-21 98 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

相关问题