@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();
  • Вопрос задан
  • 427 просмотров
Пригласить эксперта
Ответы на вопрос 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
Похожие вопросы
Alar Studios Будва
от 1 500 до 2 000 eur.
Tark Industries Новосибирск
от 80 000 до 120 000 руб.
Duotek Москва
от 130 000 до 170 000 руб.
17 авг. 2018, в 23:00
5500 руб./за проект
17 авг. 2018, в 17:10
15000 руб./за проект