5

我无法获取指向 Fragment 的指针,这是 FragmentTabhost 中当前可见的片段。

我有一个SherlockFragmentActivity调用SecondActivity,它从它的onCreate方法加载 Tabhost,如下所示:

if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {
    Fragment f = new TabsFragment();

    getSupportFragmentManager().beginTransaction().add(android.R.id.content, f, "tabsfragment").commit();
}

TabsFragmentSherlockFragment使用此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) delegate.getSupportFragmentManager().findFragmentByTag("Tab2");

delegate变量是一个指向SecondActivity后台类启动时的指针。

如何获得指向选项卡片段的指针?Tag添加选项卡时设置的“Tab2”是片段的,我错了吗?

4

1 回答 1

20

我真的不喜欢回答我自己的问题,但睡在上面能做的事情真是太神奇了。这个怪物给了我一个指向 tabhost 中片段的指针

NewsFragment newsView = (NewsFragment) delegate
                        .getSupportFragmentManager()
                        .findFragmentByTag("tabsfragment")
                        .getChildFragmentManager()
                        .findFragmentByTag("Tab2");
于 2013-05-18T09:51:09.653 回答