如何在FragmentPagerAdapter中添加片段Tag以便以后引用片段? [英] How to add fragment Tag in a FragmentPagerAdapter to reference the fragment later?
本文介绍了如何在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屋!
查看全文