多重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);

}

}

);


你可能感兴趣的:(android开发)