Форум программистов, компьютерный форум, киберфорум
Наши страницы

ViewPager и findViewById для ListView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Вытащить информацию из SQLite на новое Activity http://www.cyberforum.ru/android-dev/thread1702496.html
Здравствуйте! У меня есть 3 класса: В DB создаю базу данных, записи добавляются прямо из приложения. В MainActivity по данным из базы создаю ListView, заполняемый с помощью CursorLoader. По...
Программирование Android Игра под машинку Добрый день форум чане, мне нужно написать программу под ос андроид, с помощью которой я смогу управлять машинкой через Wi-Fi. Как мне это сделать так как я в программировании не силён, может кто... http://www.cyberforum.ru/android-dev/thread1702174.html
TextView или WebView Программирование Android
Добрый день, суть темы такого, есть у меня в базе обработанный html код - который включает в себя <p><br> <img src=""> <a href=""> ul li .... . Мне этот формат нужно вывести в приложение, вот...
Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов Программирование Android
Я учусь в универе и вот пытаюсь делать лабораторные по языку java, только на свой телефон с помощью android studio )) До этого все получалось и разбирался как и что, а вот с матрицей что то не...
Программирование Android Несколько Socket подключений http://www.cyberforum.ru/android-dev/thread1701940.html
Вообщем, столкнулся с проблемой. Если подключить несколько устройств к сокет серверу, данные получаются только от того, кто был подключен первый. Код сервера:Runnable runnable = new Runnable() {...
Программирование Android Bluetooth и два активити Разрабатываю приложение для связи смартфона по блютус с метеостанцией. По запросу смартфона метеостанция отсылает данные на смартфон. За основу взял открытую программку Bluetooth Chat, коммуникация... подробнее

Показать сообщение отдельно
GrinJ
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 31

ViewPager и findViewById для ListView - Программирование Android

04.04.2016, 15:30. Просмотров 160. Ответов 0
Метки (Все метки)

Добрый вечер. Столкнулся с такой проблемой: создал сначала 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.