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

发布时间:2016-09-04 14:28:15 作者:哈尔滨app开发公司哈尔滨app开发app开发公司

1 首先定义一个接口:public interface IFragmentDataListener { public void transferMessage(); } 2 然后Fragment和Fragment

1.首先定义一个接口:
public interface IFragmentDataListener {  
    public void transferMessage();   
}  
2.然后Fragment和FragmentActivity分别取实现IFragmentDataListener接口:
public class CompanyContactsFragment extends BaseFragment<CompanyContactsFragment> implements IFragmentDataListener

public class CompanyActivity extends BaseFragmentActivity<CompanyActivity> implements IFragmentDataListener  

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

          在FragmentActivity中:

  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中:

  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中:

  1.  @Override  
  2. public void transferMessage() {  
  3. // TODO Auto-generated method stub  
  4. System.out.println("由Fragment传输过来的信息");   
  5. setTitleButtonSelect(1);  


 在Fragment中:

  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.    mFragmentDataListener.transferMessage();//在需要调用的地方,调用这个方法  
评论
  • 秋#@ 于 2016/09/06 13:09 评论

    在安卓开发上fragment通信最好的办法,学习了。。。

相关阅读



联系我们

哈尔滨云创科技有限公司

地址:黑龙江省哈尔滨市南岗高新开发区嵩山路5号
电话:0451-51035763 51030378
在线QQ:191814825