findFragmentByTag — поиск фрагмента в FragmentTabHost — всегда null

У меня возникли проблемы с получением указателя на фрагмент, который в настоящее время является видимым фрагментом в FragmentTabhost.

У меня есть SherlockFragmentActivity с именем SecondActivity, который загружает Tabhost из своего метода onCreate следующим образом:

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;

    }

Теперь, когда я нахожусь на 2-й вкладке, у меня есть фоновая задача, выполненная в классе, который инициируется исходной активностью SecondActivity, затем я вызываю ее, которая должна дать мне ссылку на вкладку, но она всегда возвращает ноль!

NewsFragment newsView = (NewsFragment) delegate.getSupportFragmentManager().findFragmentByTag("Tab2");

Переменная delegate является указателем на SecondActivity, когда она запускает фоновый класс.

Как получить указатель на фрагмент вкладки? Я ошибаюсь, что «Tab2», установленный при добавлении вкладок, является Tag для фрагмента?


person Darren    schedule 17.05.2013    source источник


Ответы (1)


Я не очень люблю отвечать на свои вопросы, но удивительно, на что способен сон на нем. Этот монстр дает мне указатель на фрагмент в табхосте

NewsFragment newsView = (NewsFragment) delegate
                        .getSupportFragmentManager()
                        .findFragmentByTag("tabsfragment")
                        .getChildFragmentManager()
                        .findFragmentByTag("Tab2");
person Darren    schedule 18.05.2013