Android 如何从一个片段开始在另一个片段开始?

Android 如何从一个片段开始在另一个片段开始?,android,fragment,Android,Fragment,在片段A中,我具有检索url的功能 在片段B中,我有继续和显示url的功能 片段A如何告诉片段B有新数据要处理,其中2个片段并排放置?片段意味着要重复使用。。。也就是说,两个片段不应该直接在彼此之间传递数据。相反,您应该在活动中定义。如果需要,这将确保您可以在应用程序(以及您制作的其他应用程序)的其他位置重复使用片段。您需要定义一个接口并在接口中调用一个方法。另一个片段将实现该接口,当调用该方法时,您将调用所需的方法 希望能有帮助 编辑: 这是我建议的一种方法。在我的场景中,FragmentA是

在片段A中,我具有检索url的功能 在片段B中,我有继续和显示url的功能


片段A如何告诉片段B有新数据要处理,其中2个片段并排放置?

片段意味着要重复使用。。。也就是说,两个片段不应该直接在彼此之间传递数据。相反,您应该在活动中定义。如果需要,这将确保您可以在应用程序(以及您制作的其他应用程序)的其他位置重复使用片段。

您需要定义一个接口并在接口中调用一个方法。另一个片段将实现该接口,当调用该方法时,您将调用所需的方法

希望能有帮助

编辑:

这是我建议的一种方法。在我的场景中,FragmentA是调用您的方法的,FragmentB是包含该方法的

在碎片中定义此接口a

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,并在MethodThatYouwantToBeFired()上重写void方法
当触发此方法时,调用在FragmentB中注册的侦听器。当启动侦听器时,您可以在FragmentB中调用您感兴趣的方法


我希望它能帮助您。

还有一个问题,我无法解决。片段B实现了监听器,这一部分很简单。但是片段A如何初始化侦听器并使用它方法呢?您应该使用您的活动来允许片段彼此通信。我写了一个提纲,说明我将如何实现您的场景。我希望它能对你有用。整个问题是,除了我想进行的通信之外,这两个片段彼此完全独立。它们都是由活动同时启动的。它们同时运行,这很好……您的活动接收来自FragmentA的回调,并通过接口将其转发给FragmentB,FragmentB激发您感兴趣的方法。重复使用,这正是我对通信感兴趣的原因。我想更新数据,而不是重新创建片段。如果需要,可以使用Bundle在它们之间传递数据。这里已经有一条线索了。谷歌搜索它。我不需要路径数据,我需要调用方法,然后在你膨胀片段时调用方法。不知怎的,我很高兴你相信片段B是由片段A开始的。。。