Android findFragmentByTag-在FragmentTabHost中查找片段-始终为null
我在获取指向FragmentTabhost中当前可见的片段的指针时遇到问题 我有一个名为Android findFragmentByTag-在FragmentTabHost中查找片段-始终为null,android,actionbarsherlock,android-tabhost,fragment-tab-host,Android,Actionbarsherlock,Android Tabhost,Fragment Tab Host,我在获取指向FragmentTabhost中当前可见的片段的指针时遇到问题 我有一个名为SecondActivity的SherlockFragmentActivity从其onCreate方法加载Tabhost,如下所示: if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) { Fragment f = new TabsFragment(); getSupportFragm
SecondActivity
的SherlockFragmentActivity
从其onCreate
方法加载Tabhost,如下所示:
if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {
Fragment f = new TabsFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, f, "tabsfragment").commit();
}
TabsFragment
是一个SherlockFragment
子类,使用此onCreate
方法创建选项卡
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mTabHost = new FragmentTabHost(getActivity());
mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.tabs);
mTabHost.addTab(mTabHost.newTabSpec("Tab1").setIndicator("Offers",
getResources().getDrawable(R.drawable.offersale)),
OfferListFragment.class,
null);
mTabHost.addTab(mTabHost.newTabSpec("Tab2").setIndicator("News",
getResources().getDrawable(R.drawable.newspaper)),
NewsFragment.class,
null);
return mTabHost;
}
现在,当我在第二个选项卡中时,我在一个类中完成了一个后台任务,该类由原始活动SecondActivity
启动,然后我调用它,它应该给我一个对该选项卡的引用,但它总是返回null
NewsFragment newsView=(NewsFragment)委托。getSupportFragmentManager().findFragmentByTag(“Tab2”)代码>
delegate
变量是启动后台类时返回到SecondActivity
的指针
如何获取指向选项卡片段的指针?
添加选项卡时设置的“Tab2”是片段的标记,我错了吗?我真的不喜欢回答我自己的问题,但睡在上面能做什么真是太神奇了。
这个怪物给了我一个指向tabhost中片段的指针
NewsFragment newsView = (NewsFragment) delegate
.getSupportFragmentManager()
.findFragmentByTag("tabsfragment")
.getChildFragmentManager()
.findFragmentByTag("Tab2");