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

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

Войти через центр авторизации
Похожие вопросы
Dornoom LP Москва
от 100 000 до 150 000 руб.
ММТ Москва
от 80 000 до 140 000 руб.
от 90 000 до 160 000 руб.