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

查看:278
本文介绍了android - 如何将activity获得的返回值传递给ViewPager中的fragment?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

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

ViewPager代码:

public class SectionPagerAdapter extends FragmentPagerAdapter {

        public SectionPagerAdapter(FragmentManager fm) {
            super(fm);
        }


        //指定fragment
        @Override
        public Fragment getItem(int position) {
            switch (position){
                case 0:
                    return new MyFriendsFragment();
                case 1:
                    return new MyGroupFragment();
                default:
                    return null;
            }
        }
        //定义列数
        @Override
        public int getCount() {
            return 2;
        }

        //定义列标签
        @Override
        public CharSequence getPageTitle(int position) {
            switch (position){
                case 0:
                    return "好友";
                case 1:
                    return "群组";
            }
            return null;
        }
    }
    
    需要在activity的onActivityResult方法中传递给fragment,,没法用tag,怎么办还有别的方法吗

解决方案

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

这篇关于android - 如何将activity获得的返回值传递给ViewPager中的fragment?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆