如何在FragmentPagerAdapter中添加片段Tag以便以后引用片段? [英] How to add fragment Tag in a FragmentPagerAdapter to reference the fragment later?

查看:367
本文介绍了如何在FragmentPagerAdapter中添加片段Tag以便以后引用片段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试了以下操作,但没有帮助.如何从FragmentPagerAdapter设置片段的标签或访问标签?

I tried the following but it didn't help . How can I set tags or acess tags of fragments from FragmentPagerAdapter ?

        @Override
public Fragment getItem(int position) {

    MainActivity activity = (MainActivity)mcontext;

    if (position == 0) {
       Fragment discoverFragment =  new DiscoverFragment();
        activity.getSupportFragmentManager().beginTransaction().add(discoverFragment, "discover").commit();
        return discoverFragment;
    } else if (position == 1){
        Fragment myFeedFragment =  new MyFeedFragment();
        activity.getSupportFragmentManager().beginTransaction().add(myFeedFragment, "myfeed").commit();
        return myFeedFragment;
    } else {
        Fragment filterFragment =  new FilterFragment();
        activity.getSupportFragmentManager().beginTransaction().add(filterFragment, "filter").commit();
        return filterFragment;
    }
}

推荐答案

似乎您在正确设置标签.无论如何,这种方式应该可行.

It seems that you are setting the tags correctly. Anyway, this way should work.

设置标签:

MyFeedFragment myFeedFragment= new MyFeedFragment();
getSupportFragmentManager().beginTransaction().add(R.id.fragmentContainer, myFeedFragment, "myfeed");
fragmentTransaction.commit();

然后您可以通过搜索标记来获取它:

And then you can get it by searching tag:

    List fragments = getSupportFragmentManager().getFragments();

    Fragment discoverFrag = null;
    Fragment myFeedFragment = null;
    Fragment filterFragment = null;

    for (int i = 0; i < fragments.size(); i++) {
        if (((Fragment) fragments.get(i)).getTag() == "discover")
            discoverFrag = (Fragment) fragments.get(i);

        if (((Fragment) fragments.get(i)).getTag() == "myfeed")
            myFeedFragment = (Fragment) fragments.get(i);

        if (((Fragment) fragments.get(i)).getTag() == "filter")
            filterFragment = (Fragment) fragments.get(i);
    }

这篇关于如何在FragmentPagerAdapter中添加片段Tag以便以后引用片段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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