android - 如何将activity获得的返回值传递给ViewPager中的fragment?

浏览:68日期:2022-12-08

问题描述

如何将activity获得的返回值传递给ViewPager中的fragment?

我需要监听返回事件,刷新viewPager中的fragment

ViewPager代码:

public class SectionPagerAdapter extends FragmentPagerAdapter {public SectionPagerAdapter(FragmentManager fm) { super(fm);}//指定fragment@Overridepublic Fragment getItem(int position) { switch (position){case 0: return new MyFriendsFragment();case 1: return new MyGroupFragment();default: return null; }}//定义列数@Overridepublic int getCount() { return 2;}//定义列标签@Overridepublic CharSequence getPageTitle(int position) { switch (position){case 0: return '好友';case 1: return '群组'; } return null;} }需要在activity的onActivityResult方法中传递给fragment,,没法用tag,怎么办还有别的方法吗

问题解答

回答1:

Activity与Fragment是父子关系,直接传值是没问题的,只是你这里直接使用了new出来的Fragment,没有将它的引用保存,所以自然不方便传值。你在new的时候保存一份引用到FragmentPagerAdapter或者直接保存到Activity,那样你不就能直接调Fragment里的方法里吗?另外,如果是从一个Fragment调起的Activity并返回到这个Fragment中,可以直接使用Fragment中的startActivityForResult和onActivityResult方法,Fragment里已经将结果封装好了,响应会直接传到这个Fragment中。

回答2:

消息总线EventBus可以试试

相关文章: