fragment Activity之间传值的方法 之------------接口回调

首先  定义一个  回调接口

  1. public interface FragmentCallBack {  
  2.     public void callbackFun1(Bundle arg);  
  3.   
  4.     public void callbackFun2(Bundle arg);  
  5. }  

让Activity实现了这个接口

  1. public class MainActivity extends ActionBarActivity implements FragmentCallBack
  2. {  
  3.       
  4.     private Button btn;  
  1.  @Override  
  2.     public void callbackFun1(Bundle arg) {  
  3.         // TODO Auto-generated method stub  
  4.         switchFragment();//通过回调方式切换  
  5.     }  
  6.   
  7.     @Override  
  8.     public void callbackFun2(Bundle arg) {  
  9.         // TODO Auto-generated method stub  
  10.         changeButtonColor();//通过回调方式调用Activity中的方法  
  11.     }  
  12.   
  13. }  

最后在fragment的onAttach中绑定在点击事件中调用

  1. @Override  
  2.     public void onAttach(Activity activity) {  
  3.         // TODO Auto-generated method stub  
  4.         super.onAttach(activity);  
  5.         fragmentCallBack = (MainActivity)activity;  
  6.     }  
  1.  btn.setOnClickListener(new OnClickListener() {  
  2.               
  3.             @Override  
  4.             public void onClick(View v) {  
  5.                 // TODO Auto-generated method stub  
  6.                 fragmentCallBack.callbackFun1(null);  
  7.             }  
  8.         });  

  同理  activity向fragment传值时只需要将new 出来的fragment上转型为fragment实现的接口类型 在activity中的点击事件中调用回调方法就可以传值了

fragment之间的传值最好是通过activity传值

 

activity中用getSupportFragmentManager   fragment中还有fragment用getChildFragmentManager

原文地址:https://www.cnblogs.com/bimingcong/p/4868195.html