Как получить нужный 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();
Для того чтобы получить нужный 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. Надеюсь, это поможет вам решить проблему. Если у вас остались вопросы, не стесняйтесь спрашивать.
Для того чтобы получить нужный Fragment из Activity, который содержит ViewPager, необходимо использовать методы, предоставленные самим ViewPager.
В вашем случае, чтобы получить доступ к нужному Fragment и его View, можно использовать следующий код:
// Получаем ViewPagerViewPager 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. Надеюсь, это поможет вам решить проблему. Если у вас остались вопросы, не стесняйтесь спрашивать.