多重Fragment嵌套,子Fragment的onActivityResult方法不执行的解决方案

Activity aa 

Fragment fa

Fragment  fa1

Fragment fb

Fragment fc

Activity ab


如上所示关系,在a1中调用fa1.startActivityForResult()方法,跳转到ab, ab  finish() 之前反传值,fa1的onActivityResult()方法没有调用

而是调用其父Fragment  fa的onActivityResult方法,此时若想将返回值传递到子Fragment  fa1中,可在fa中声明一个回调接口,利用回调的方式

将反传值传递给fa1

上代码:

在fa中代码有如下代码

private CityNameCallback callback;
/**
* 设置回调接口对象
* @param callback
*/
public void setCityNameCallback(CityNameCallback callback){
this.callback=callback;
}

public void interface CityNameCallback {
void onCityNameLoaded(String name);

}


在fa1中有如下代码

(ParentFragment)childFragment.this.getParentFragment().setCityNameCallback(new CityNameCallback(){
//此处即可接受到回调值

public void onCityNameLoaded(String name){
tv.settex(name);

}

}

);


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值