两个Fragment之间怎样通信?

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

转 两个Fragment之间怎样通信?

 

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

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

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

 

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

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

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

 

实现代码:

 

F1的关键代码:

 

    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);
      }
});

​​​​​​​

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值