项目中需要通过Fragment接收Activity的回传数据,于是乎便想到了调用OnActivityResult去接收Activity的回调,但是试了多次之后发现并没了走OnActivityResult方法,于是百度了一下,说要重写FragmentActivity,如下
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/*在这里,我们通过碎片管理器中的Tag,就是每个碎片的名称,来获取对应的fragment*/
Fragment f = fragmentManager.findFragmentByTag(curFragmentTag);
/*然后在碎片中调用重写的onActivityResult方法*/
f.onActivityResult(requestCode, resultCode, data);
}当我加到BaseFragmentActivity中之后调试了下,发现还是没有走这个OnActivityResult, 大写的郁闷....
后来细细的回忆了一下Fragment和Activity的生命周期,发现我应该在主Activity力写OnActivityResult,而不是在FragmentActivity中, 顿时恍然大悟
要注意的地方是这里
OtherStationFragment os = new OtherStationFragment();
os.onActivityResult(requestCode, resultCode, data);在加载Fragment的Activity中写完onActivityResult后,要传给Fragment,必须要把这个事件分给Fragment去处理,否则Activity就会在这里就已经拦截掉,
在Fragment里当然收不到onActivityResult回传了,这样就ok了
Fragment接收Activity回传数据
本文介绍了如何在Android开发中让Fragment正确接收Activity传递的数据。关键在于理解Fragment和Activity的生命周期,并确保在Activity中适当地将 onActivityResult 回调分发给对应的Fragment。
1560

被折叠的 条评论
为什么被折叠?



