两个Fragment之间怎样通讯?

https://blog.csdn.net/nnmmbb/article/details/50931064html

转 两个Fragment之间怎样通讯?this

 

版权声明:本文为博主原创文章,未经博主容许不得转载。 https://blog.csdn.net/nnmmbb/article/details/50931064.net

 首先明确一点:两个Fragment之间不能直接通讯,只能经过它们所寄生的Activity做为桥梁进行通讯。code

        场景假设:咱们假设A这个Activity里面有F1,F2两个Fragment。F1里面是新闻列表, F2里面是新闻详情,点击F1的某一条,要让F2相应的发生改变。htm

 

   那具体怎么实现呢?分两步:blog

   1. 在F1里面定义接口,A里面实现接口。经过回调实现F1与其父亲A的通讯。接口

   2. 在A接口回调方法里与F2通讯,将参数传给F2。get

 

实现代码:it

 

F1的关键代码:io

 


    public interface OnArticleClickedListener {
        public void onArticleSelected(int position);
    }
 
   setOnArticleClickedListener(OnArticleClickedListener listener){
        this.listener = listener;
    }
 
   
    public void onListItemClick(ListView l, View v, int position, long id) {
        this.listener.onArticleSelected(position);
    }

A的关键代码:

 

 

 f1.setOnArticleClickedListener(new F1.OnArticleClickedListener(){
    onArticleSelected(int position){
               //调用f2的方法,与进行通讯
        f2.showArticleDetail(position);
      }
});

​​​​​​​