@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();
  • Вопрос задан
  • 438 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Sports.ru Москва
До 175 000 руб.
KUPIBILET.RU Санкт-Петербург
от 100 000 руб.
Frogogo Москва
от 70 000 руб.
10 дек. 2018, в 09:04
300 руб./в час
10 дек. 2018, в 08:44
10000 руб./за проект
10 дек. 2018, в 08:00
1000 руб./в час