@vladocc

Как получить нужный Fragment из Activity при использовании ViewPager?

У меня есть Activity, в которой находится ViewPager, создающий мне несколько страниц. Мне необходимо из Activity вызвать findViewById или что-либо другое, чтобы найти элемент, но так как он находится на фрагменте, который создал ViewPager, то все становиться не так просто. Насколько я понял как это работает, мне необходимо найти сначала этот фрагмент, а уже потом на нем искать вью, но студия не дает мне возможности вызвать в Activity метод findFragmentById.
Вероятнее всего я чего-то просто не понимаю, потому прошу указать на мою ошибку и подсказать, как же это реализуется верно.

Код;
pastebin.com/G0vgJeDj

Раньше ошибка была здесь:
ListView playlist = (ListView) m.findViewById(R.id.Playlist);

Теперь здесь:
View m = mSectionsPagerAdapter.getItem(1).getView();
  • Вопрос задан
  • 523 просмотра
Пригласить эксперта
Ответы на вопрос 2
@vahaketiladze
getItem - не подходит.
Посмотрите решение тут :
stackoverflow.com/questions/8785221/retrieve-a-fra...

Мне помогло, когда я столкнулся с подобной задачей.
Ответ написан
Комментировать
@PaulWeb
getItem не подойдет потому что там грубо говоря хранятся болванки фрагментов,на самом деле в FragmentStatePagerAdapter есть список называется mFragments, вот туда и сохраняется ссылка уже на созданный фрагмент после того как пройдет транзакция, а как выдернуть можно просто сделать свой FragmentStatePagerAdapter и там добавить метод
public Fragment getRegisteredFragment(int position){
        return Is.empty(mFragments) ?null:mFragments.get(position);
    }


а да если по каким то причинам свой adapter не пойдет то надо искать в fragmentmanager, надо посомтреть под каким id туда записали фрагмент и все, порядок формирования идентификатора не помню но легко можно посмотреть на stackoverflow
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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