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