Java 如何从另一个片段调用方法

Java 如何从另一个片段调用方法,java,android,Java,Android,大家好。我已经在片段中检查了listener,我需要在这个listener中键入一些方法,但需要使用的数据在另一个片段中。如何从不同的片段发送此数据?我可以从另一个片段调用checkedListener并在mainActivity类中为他键入一些规则吗?我将非常感谢你的帮助。多谢各位 我如何发送我需要创建的sreeshot示例(顶部的第一个正方形是main fragment,其数据为和-1+4,底部为diamonts,我有另一个片段,其具有checkedListener,我需要比较不同片段的和,

大家好。我已经在片段中检查了listener,我需要在这个listener中键入一些方法,但需要使用的数据在另一个片段中。如何从不同的片段发送此数据?我可以从另一个片段调用checkedListener并在mainActivity类中为他键入一些规则吗?我将非常感谢你的帮助。多谢各位

我如何发送我需要创建的sreeshot示例(顶部的第一个正方形是main fragment,其数据为和-1+4,底部为diamonts,我有另一个片段,其具有checkedListener,我需要比较不同片段的和,如果为真,我需要在文本中设置xtColor):

片段不打算在彼此之间直接对话。 您可以执行以下两种操作之一:

1-将数据存储在两个片段共用的活动中,并让每个片段在整个活动中获取和设置数据

2-如果数据确实绑定到其中一个片段,那么让另一个片段请求活动提供数据。反过来,活动可以要求具有数据的框架将其移交,以便将其传递给请求的框架

片段和活动之间的通信可以通过接口完成,也可以通过将活动直接转换到其具体类来完成

在另一个方向,通过引用相应的片段


注意:如果对片段使用ViewPager,则获取当前片段实例需要一些额外的步骤。

正如@Juan answer建议的那样,片段不应直接通信。这就是你如何做到的

这是实现fragment中定义的接口的activity类

public class MainActivity extends Activity implements FragmentInterface {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    @Override
    public void fragmentInterfaceMethod(int your_value) {
        //use your_value to send it to another fragment
    }

}
您的片段类:

public class MyFragment extends Fragment {

   public interface FragmentInterface {
       void fragmentInterfaceMethod(int your_value);
   }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        mView = inflater.inflate(R.layout.fragment_word_definition, container, false);

        int myValue = 123;
        ((FragmentInterface)getActivity()).fragmentInterfaceMethod(myValue);

        return mView;
    }
}