@Vadim028

Как добраться до элемента ListView по ID находящемуся в ListAdapter, который загружается в FragmentTabsPager?

Помогите добраться до элемента ListView (по ID?), из "активити" FragmentTabsPager (SherlockFragmentActivity), для определения координат элемента списка полученного через ListAdapter. Требуется подать эти данные на вход target для ShowcaseView.
Снимок экрана со списком, первый элемент выделен для примера
a4442549154e47b5a0bbac303a5a0ca1.png


Список формируется в LoaderCursorSupport.java (CursorLoaderListFragment extends SherlockListFragment) по запросу из FragmentTabsPager.java для заполнения ViewPager (@+id/pager в XML разметке) и наполнения указанного "таба" контентом.

Все элементы из разметки fragment_tabs_pager.xml найти удаётся, а вот то что в списке ни через поиск по ID, ни через поиск фрагментов не видит.

Пробовал как в onCreate(), так и в onStart()
Фрагментов вообще не находит:
Fragment frag1 = getSupportFragmentManager().findFragmentById(R.id.pager); 

//Если фрагмент не существует (null) или не является частью разметки (isInLayout), то переменная mIsDynamic будет иметь значение true.
mIsDynamic = frag1 == null || !frag1.isInLayout();

Toast.makeText(this, mIsDynamic + " не неайдено", Toast.LENGTH_SHORT).show();


По ID ищет только в пределах разметки "fragment_tabs_pager.xml", а элементы которые вставляется как "ViewPager" (android:id="@+id/pager") не видятся

ViewPager vp = (ViewPager) this.findViewById(R.id.pager); //находит

TextView tv   = (TextView) vp.findViewById(R.id.Text1); //возвращает NullPointerException
TextView tv   = (TextView) this.findViewById(R.id.Text1); //возвращает NullPointerException

Код из примера к библиотеке ABS 4.4 (fragments), используемые файлы по ссылкам:

FragmentTabsPager.java

LoaderCursorSupport.java

fragment_tabs_pager.xml
  • Вопрос задан
  • 2691 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Sp0tted_0wl
А так вы пробовали?

ViewPager vp = (ViewPager) this.findViewById(R.id.pager); //находит

Fragment currentFragment = vp.getAdapter().getItem(vp.getCurrentItem());
View fragmentView = currentFragment.getView

TextView tv = (TextView) fragmentView.findViewById(R.id.Text1);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы