Android从片段调用片段方法

Android从片段调用片段方法,android,android-fragments,Android,Android Fragments,我有4个片段,我正在尝试单击FragmentA上的一个按钮,调用一个方法来更改FragmentB上某些视图的可见性并填充它 我尝试了一个接口,但似乎无法在两个片段之间工作。如果我在活动中实现接口方法,我可以从片段中调用接口方法,但我不能在片段中实现它并在片段中调用它 有没有其他方法可以做到这一点?我认为我不能使用static关键字。我建议您可以使用广播接收器,它可以在任何地方执行操作,并且易于使用。 在第一个片段中,您可以定义接收者,从另一个片段中,您可以发送广播或动作 下面是一个例子 在要更新

我有4个片段,我正在尝试单击FragmentA上的一个按钮,调用一个方法来更改FragmentB上某些视图的可见性并填充它

我尝试了一个接口,但似乎无法在两个片段之间工作。如果我在活动中实现接口方法,我可以从片段中调用接口方法,但我不能在片段中实现它并在片段中调用它


有没有其他方法可以做到这一点?我认为我不能使用static关键字。

我建议您可以使用广播接收器,它可以在任何地方执行操作,并且易于使用。 在第一个片段中,您可以定义接收者,从另一个片段中,您可以发送广播或动作

下面是一个例子

在要更新视图的第一个片段中编写以下代码

private void registerReciver() {
        broadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (intent != null && intent.getAction().equals("UPDATE_FRAG_A")) {
                    // here you can fire your action which you want also get data from intent
                }
            }
        };
        IntentFilter intentFilter = new IntentFilter("UPDATE_FRAG_A");
        getActivity().registerReceiver(broadcastReceiver, intentFilter);
    }
在你的第二个片段中写下下面的开火代码

Intent intent=new Intent();
        // Here you can also put data on intent
        intent.setAction("UPDATE_FRAG_A");
        getActivity().sendBroadcast(intent);

假设所有片段都在同一个活动中

  • 在FragmentA中定义一个接口,它是一个侦听器
  • 通过公共方法公开FragmentB中要执行的操作
  • 通过调用FragmentB的公共方法在父活动中实现FragmentA的接口

  • 有关更多信息,请参见

    您可以使用共享首选项存储数据,并根据您的片段进行更改活动实现接口并调用片段的相应方法,请显示代码您能给出一个示例吗?我无法让它从一个片段工作到另一个片段。我可以对片段进行活动,反之亦然,但不能对片段进行活动。是否有好的指南或教程可以让我参考。它们看起来很复杂。我觉得我做错了这一切,因为我需要从我的片段中操纵视图,如果我的活动可以访问它们,这将很简单。我更新了我的答案,请现在检查,请不要错过在第一个片段中注销广播接收器。