zoukankan      html  css  js  c++  java
  • fragment和自己的activity通讯

    在用到fragment的时候,老是会遇到一个问题,就是fragment与activity之间的通信。下面就来记录一下 activity和fragment之间 通过实现接口来互相通信的方法。
    1. activity 向fragment发出通信,就这么写:


    private OnMainListener mainListener;        // 绑定接口       

    @Override       

    public void onAttachFragment(Fragment fragment) {       

          try {        mainListener = (OnMainListener) fragment;        } catch (Exception e) {        throw new ClassCastException(this.toString() + " must implement OnMainListener");        }       

    super.onAttachFragment(fragment);        }        // 接口       

    public interface OnMainListener {        public void onMainAction();        }

    1. onMainAction 方法是activity向 fragment发出通信的方法,里面可以放参数, 在要发出通信的地方直接调用该方法即可。
    复制代码
    1. 在对应的fragment里面要这么写:
    复制代码

        public class MyFragment extends Fragment implements OnMainListener { 
          public void onMainAction() { 
             //这里是实现通信的接口 


    2. fragment向activity 发出通信:(和前面差不多)

    1.         private OnFragmentListener mListener;
       @Override        public void onAttach(Activity activity) {       

                            super.onAttach(activity);      
               try {        mListener = (OnFragmentListener) activity;       
      } catch (ClassCastException e) {       
      throw new ClassCastException(activity.toString() + " must implement OnFragmentListener");       
      }     
        }      

      public interface OnFragmentListener {        public void onFragmentAction(int flag);        }
     

    在activity中 实现接口:   public   class  MainActivity  extends  Activity  implements  OnFragmentListener{ 

    ………………

    public void onFragmentAction(int flag) { 
    两者都是通过接口的实现来进行通信的,重要的地方就是分别在onAttachFragment 和 onAttach方法中进行接口绑定。 通信还有其他方法的,比如广播、静态handler等,这里就不赘述了。
    end~

    http://www.colabug.com/thread-1124396-1-1.html

    http://blog.csdn.net/t12x3456/article/details/8119607

  • 相关阅读:
    我为什么写博客
    Jquery选中行实现行中的Checkbox的选中与取消选中
    jquery中attr和prop的区别
    如何将.il、.res文件封装成dll文件
    修改VS2010生成的dll文件中的内容
    asp.net mvc4中自定义404页面
    asp.net EF6.0中出现未找到具有固定名称“System.Data.SqlClient”的 ADO.NET提供程序的实体框架提供程序解决办法
    ASP.NET中JSON的序列化和反序列化(转)
     WPF 控件总结
    C语言基础:二维数组 分类: iOS学习 c语言基础 2015-06-10 21:42 16人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/yc3120/p/4374362.html
Copyright © 2011-2022 走看看