Fragment和activity之间的通信

时间:2024-07-25 15:36:32
1>fragment可以调用getactivity()方法获取它所在的activity。
2>activity可以调用FragmentManager的findFragmentById()或findFragmentByTag()方法获取Fragment.
     activity----->Fragment:在activity中创建Bundle数据包,并调用Fragment的setArguments(Bundle bundle)方法。
     Fragment----->activity:需要在Fragment中定义一个内部回调接口,再让包含该Fragment的activity实现回调接口,这样Fragment可调用该回调方法将数据传递给activity。
                     Bundle bundle=new Bundle();
                     bundle.putSerializable( "name", text);
                     fragment.setArguments(bundle);
                     FragmentManager manager= getFragmentManager();
                     FragmentTransaction beginTransaction=manager.beginTransaction();
                     beginTransaction.add(R.id. layout_main, fragment, "fragment" );
                     beginTransaction.commit();
                     getArguments().get( "name");          //在fragment中根据key值获取到指定的信息。