Fragment与FragmentActivity间的数据通讯详细解决方案

1.首先定义一个接口:

[java]  view plain copy
  1. public interface IFragmentDataListener {  
  2.     public void transferMessage();   
  3. }  


2.然后Fragment和FragmentActivity分别取实现IFragmentDataListener接口:

[java]  view plain copy
  1. public class CompanyContactsFragment extends BaseFragment<CompanyContactsFragment> implements IFragmentDataListener  

[java]  view plain copy
  1. public class CompanyActivity extends BaseFragmentActivity<CompanyActivity> implements IFragmentDataListener  


3.如果FragmentActivity中调用Fragment的方法:

          在FragmentActivity中:

[java]  view plain copy
  1. private IFragmentDataListener mFragmentDataListener;   
  2. @Override  
  3. public void onAttachFragment(Fragment fragment) {  
  4.     // TODO Auto-generated method stub  
  5.     try {  
  6.         mFragmentDataListener = (IFragmentDataListener) fragment;  
  7.     } catch (Exception e) {  
  8.         // TODO: handle exception  
  9.     }  
  10.     super.onAttachFragment(fragment);  
  11. }  
  12.   
  13. @Override  
  14. public void transferMessage() {//在这里这个不用管  
  15.     // TODO Auto-generated method stub  
  16.     System.out.println("由Fragment传输过来的信息");   
  17. }  
  18.   
  19.   
  20.        mFragmentDataListener.transferMessage();//在需要调用的地方,调用这个方法  
        在 Fragment 中:

[java]  view plain copy
  1. @Override  
  2. public void transferMessage() {  
  3.     // TODO Auto-generated method stub  
  4.     System.out.println("由Activity传输过来的信息");    
  5.     loadData(2);  
  6. }  


4.在Fragment中调用FragmentActivity中的方法:

        在FragmentActivity中:

[java]  view plain copy
  1.       @Override  
  2. ublic void transferMessage() {  
  3. // TODO Auto-generated method stub  
  4. System.out.println("由Fragment传输过来的信息");   
  5. setTitleButtonSelect(1);  
        在Fragment中:

[java]  view plain copy
  1.     private IFragmentDataListener mFragmentDataListener;    
  2.     @Override  
  3.     public void onAttach(Activity activity) {  
  4.         // TODO Auto-generated method stub  
  5.         try {  
  6.             mFragmentDataListener = (IFragmentDataListener) activity;  
  7.         } catch (Exception e) {  
  8.             // TODO: handle exception  
  9.             throw new ClassCastException(activity.toString()+ "must implement mbtnListener");  
  10.         }   
  11.         super.onAttach(activity);  
  12.     }  
  13.   
  14.         @Override  
  15.         public void transferMessage() {//在这里这个不用管  
  16.             // TODO Auto-generated method stub  
  17.             System.out.println("由Activity传输过来的信息");    
  18.         }  
  19.   
  20. <span style="font-size:18px;"></span><pre name="code" class="java">       mFragmentDataListener.transferMessage();//在需要调用的地方,调用这个方法  

你可能感兴趣的:(Fragment与FragmentActivity间的数据通讯详细解决方案)