大概总结了一下Fragment之间的通信主要分为三种:1、Fragment中的到Activity 2、Activity中调用Fragment 3、同一个Activity中的不同Fragment之间的相互调用
3、同一Activity中不同Fragment 之间的通信
public class MainFragment extends Fragment {
private Button change;
public static final String TAG = "Junit Test";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
View view = inflater.inflate(R.layout.fragment1, container, false);
//为各组件提供是事件响应
change = (Button) view.findViewById(R.id.change);
change.setOnClickListener(new ChangeListener());
return view;
}
class ChangeListener implements OnClickListener{
@Override
public void onClick(View view) {
Log.d(TAG, "show message");
System.out.println("按钮点击事件");
//首先得到本Activity,在得到另一个Fragment
ShowFragment showFragment = (ShowFragment) getActivity().getFragmentManager().findFragmentById(R.id.show_fragment);
//通过Fratment提供的对外接口对其进行修改
showFragment.changeView();
}
}
}
public class ShowFragment extends Fragment {
private TextView show;
public static final String TAG = "Junit Test";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
View view = inflater.inflate(R.layout.fragment2, container, false);
show = (TextView)view.findViewById(R.id.show);
return view;
}
//对外提供接口用来修改Fragment中的东东
public void changeView(){
show.setText("改正就可以了");
}
}