Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 17.06.2012
Сообщений: 31
1

ViewPager и findViewById для ListView

04.04.2016, 15:30. Показов 382. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер. Столкнулся с такой проблемой: создал сначала ListView, переопределил ArrayAdapter, все отлично работало. Затем решил добавить ViewPager и уже в него запихнуть несколько одинаковых ListView, но с разным содержанием. Написал, ViewPager работает прекрасно, правда каждый ListView запихнул в отдельный xml файл и для каждого определил свой класс Fragment. И вот тут я столкнулся с проблемой. Теперь мне надо из mainactivity заполнить список, который подключается из файла layout/layout_1.xml. Таких списков у меня шесть. Если я пытаюсь получить его через
Java
1
TestView = (ListView)findViewById(R.id.View1)
то для первого и второго списка все ОК, для остальных 4 выскакивает ошибка nullpointerexception. После я решил для каждого установить
Java
1
setContentView(R.layout.layout_1);
но после этого вместо главной страницы отображается только последний список, если добавить в конец вызов
Java
1
setContentView(R.layout.activity_main);
то главная страница отображается, только без всех элементов.

Вопрос у меня в результате следующий: как изменить содержимое страниц ViewPager'a, если они добавлены динамически и содержимое каждой страницы находится в отдельном файле в папке layout?

Добавлено через 14 часов 35 минут
Нашел ответ на свой вопрос сам, совершенно случайно. Оказывается ViewPager хранит в кэше только две страницы (поэтому для первых двух findViewById работает отлично, а для всех остальных выдает nullpointerexception). Решение простое - сказать программе, сколько вкладок мы хотим хранить в памяти.

После инициализации вашего viewpager'a добавьте следующую сточку
Java
1
viewPager.setOffscreenPageLimit(N);
где N - количество страниц. Тогда они все будут в памяти R.layout.main_activity и не придется делать вызов функции setContentView()
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2016, 15:30
Ответы с готовыми решениями:

ViewPager и ListView
Вообще пытаюсь сделать пролистывающиеся редактируемые списки. Для этого использую ViewPager и...

Скроллинг ViewPager-а как у ListView
Как сделать скроллинг у ViewPager-а по несколько элементов сразу, в зависимости от скорости жеста,...

Обновление фрагмента с ListView в ViewPager
Есть класс фрагмента, который заполняет адаптер: public class PageFragment extends Fragment...

Задать позицию ListView в ViewPager
Добрый вечер! Столкнулся с проблемой обновления ListView, после нажатия на кнопку происходит...

0
04.04.2016, 15:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2016, 15:30
Помогаю со студенческими работами здесь

Ошибка при инициализации ListView в ViewPager
Всем доброго времени суток. Столкнулся с проблемой, в простом примере создания ViewPager, все...

ViewPager внутри ListView, Как вставить?
Здравствуйте. Есть задача, внутри ListView сделать айтемы, которые содержат ViewPager Вот фрагмент...

ListView + ViewPager как правильнее организовать экспорт в Excel?
Здравствуйте! 1.) на каждой странице Pager'а свой список, как подготавливать данные (со всех...

Как победить подтормаживание при листании ViewPager со списками listview?
Как победить подтормаживание при листании ViewPager со списками listview? если быстро листать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru