4.2.4 碎片和活动之间进行通信
1、在活动中获取碎片:
(RightFragment) rightFragment = (RightFragment)getSupportFragmentManager().findFragmentById(R.id.right_fragment);
先调用getSupportFragmentManager()方法,获取FragmentManager对象,然后调用FragmentManager的findFragmentById()方法,获取布局里面的碎片。
2、在碎片中调用活动
MainActivity activity = (MainActivity)getActivity();
在每个碎片中都可以调用getActivity()方法来得到和当前碎片相关联的活动实例。
3、碎片和碎片之间进行通信
先在一个碎片里获取和其关联的活动,然后再通过这个活动去获取另一个碎片的实例。
碎片比活动多的几个回调方法:
onAttach(Context context):当碎片和活动关联的时候调用
onCreate(Bundle savedInstanceState)
onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState):为碎片创建视图(加载布局)时调用
onActivityCreated(Bundle savedInstanceState):当与碎片相关联的活动一定创建完毕时调用
onStart()
onResume()
onPause()
onStop()
onDestroyView() :当与碎片相关联的视图被移除时调用,事务提交之前加入了返回栈的话,下一个方法是onCreateView();否则的话是onDestroy()
onDestroy()
onDetach():当碎片和活动解除关联的时候调用