android开发中,Fragment+ViewPager已经很常见了。其实遇到这个问题,其实挺尴尬的,我相信有很多小伙伴都遇到这个问题。我也在网上找了很多资料,说什么是android原生的问题,程序员偷懒了,没有处理这个事件分发等。
指钱看过这位仁兄的文章,试了试,可惜不管用。提示getParentFragment();为null哎……放弃了。
然后我看到一个方法,但是很抱歉,忘记记下那位博主的链接了,在这里对这位博主说声抱歉。集体的方法呢,一起来看看吧
首先在FragmentAvtivity中 onActivityResult(...)方法中,调用 pagerAdapter.getItem(n).onAvtivityResult(...)方法;
其中,getItem()参数就是你的第某一个Fragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mPagerAdapter.getItem(1).onActivityResult(requestCode, resultCode, data);
}
然后在Fragment中的onActivityResult(...)方法中,就可以响应了,是不是很神奇。。。
到这里你以为就完吧,哈哈哈,没错,这世间就是有太多的出人意料。
。
。
。
。
。
怎么可以能这就完了,不信你试试。
哈哈哈,是不是拿不到数据,都是null?
好了,下面这部写法很重要,fragment启动activity的时候,要这么写,fragment.startAvtivityForResult(intent,RESULT_FIRST_USER);
mFragment.startActivityForResult(intent, RESULT_FIRST_USER);
没错,就是这个参数,什么意思呢哈,字面意思啊“结果第一个用户”,就是这么个意思,明白就好。
好了,完成这一步,再试一下,是不是有数据了啊,是不是感觉又回到了两个Avtivity之间跳转的感觉啊,没错,你的感觉是对的,这就真的完成了。不信你试试。