Java 使用接口在片段之间传递消息

Java 使用接口在片段之间传递消息,java,android,android-fragments,android-activity,interface,Java,Android,Android Fragments,Android Activity,Interface,我目前正在学习使用接口在它们之间传递片段和消息的概念。我创建了一个片段容器活动,它最初保存第一个片段(Home_pageFragment)。它由编辑文本和发送按钮组成。单击按钮时,editText的内容通过一个界面传递到第二个片段(Menu_pageFragment),该片段显示为文本视图。我的应用程序正在运行,但当我们单击“发送”按钮时,应用程序将终止,而不是将消息传递给第二个片段 有人能告诉我这是什么原因吗 下面是我的主页。java:(片段容器活动) 下面是我的主页_pageFragment

我目前正在学习使用接口在它们之间传递片段和消息的概念。我创建了一个片段容器活动,它最初保存第一个片段(Home_pageFragment)。它由编辑文本和发送按钮组成。单击按钮时,editText的内容通过一个界面传递到第二个片段(Menu_pageFragment),该片段显示为文本视图。我的应用程序正在运行,但当我们单击“发送”按钮时,应用程序将终止,而不是将消息传递给第二个片段

有人能告诉我这是什么原因吗

下面是我的主页。java:(片段容器活动)

下面是我的主页_pageFragment.java:(片段1)

这是我的菜单_pageFragment.java:(片段2)

这是我的OnButtonPressListener.java:(接口)


有人能帮我解决这个问题吗?

如果您想将数据从一个
片段发送到另一个

Menu_pageFragment newFragment = new Menu_pageFragment();
Bundle b=new Bundle();
b.putString(key,value);
newFragment.setArguments(b);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.commit();
并在
菜单\u pageFragment
中,使用

String value=getArguments().getString(key);

先生,我已经做过了。现在我需要使用接口来做同样的事情,因为它说不建议在片段之间直接通信,所以最好使用它们的父活动,它实现了一个接口来在两个片段之间传递消息。注意:我已经编辑了我的代码,但仍然遇到同样的问题。
package com.technology.computer.mit.ctechmit;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Menu_pageFragment extends Fragment {

    public Menu_pageFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

    return inflater.inflate(R.layout.fragment_menu_page, container, false);
    }

}
package com.technology.computer.mit.ctechmit;

public interface OnButtonPressListener {
    public void onButtonPressed(String msg);
}
Menu_pageFragment newFragment = new Menu_pageFragment();
Bundle b=new Bundle();
b.putString(key,value);
newFragment.setArguments(b);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.commit();
String value=getArguments().getString(key);