getView во фрагменте иногда возвращает null

У меня есть приложение с ViewPager, которое содержит два фрагмента :основной фрагмент и фрагмент списка. Если что-то в списке выбрано, возникает событие, которое обрабатывается в действии. Активность переключается на основной фрагмент и вызывает метод setSelectedItem. В этом методе Я использую getView (), чтобы найти конкретное представление для изменения текста в соответствии с выбранным элементом.

В большинстве случаев это работает, но иногда getView возвращает null, и я не знаю, почему.

PagerAdapter создается в OnCreate действия:

this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager());
ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
pager.setAdapter(this.mPagerAdapter);

Адаптер пейджера создает экземпляры обоих фрагментов в своем конструкторе:

public PagerAdapter(FragmentManager fm) {
    super(fm);
    this.main = MainFragment.newInstance();
    this.list = ListFragment.newInstance();
}

Это метод в действии, который вызывается при выборе элемента из списка:

ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
pager.setCurrentItem(0, true);
((MainFragment)mPagerAdapter.getItem(0)).setSelectedItem(id);

И, наконец, это строка в методе setSelectedItem в MainFragment, которая вызывает проблему:

TextView s = (TextView)getView().findViewById(R.id.CurrentSelection);

Я попробовал несколько вещей, о которых читал, но проблема все еще возникает нерегулярно.

6
задан Jan-Patrick Ahnen 7 May 2012 в 09:16
поделиться