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