Как получить нужный 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();

21 Авг 2019 в 07:05
196 +1
0
Ответы
1

Для того чтобы получить нужный Fragment из Activity, который содержит ViewPager, необходимо использовать методы, предоставленные самим ViewPager.

В вашем случае, чтобы получить доступ к нужному Fragment и его View, можно использовать следующий код:

// Получаем ViewPager
ViewPager viewPager = findViewById(R.id.viewPager);
// Получаем Adapter у ViewPager
SectionsPagerAdapter sectionsPagerAdapter = (SectionsPagerAdapter) viewPager.getAdapter();
// Получаем нужный Fragment по позиции
Fragment fragment = sectionsPagerAdapter.getItem(1); // 1 - это позиция фрагмента, которую вы хотите получить
// Получаем View фрагмента
View fragmentView = fragment.getView();
// Находим элементы на View фрагмента
ListView playlist = fragmentView.findViewById(R.id.Playlist);

Этот код позволит вам получить нужный Fragment из ViewPager и найти элементы на его View. Надеюсь, это поможет вам решить проблему. Если у вас остались вопросы, не стесняйтесь спрашивать.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир