Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
GrinJ
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 31
#1

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

04.04.2016, 15:30. Просмотров 138. Ответов 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()
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2016, 15:30     ViewPager и findViewById для ListView
Посмотрите здесь:

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

Обновление фрагмента с ListView в ViewPager - Программирование Android
Есть класс фрагмента, который заполняет адаптер: public class PageFragment extends Fragment implements LoaderCallbacks<Cursor> { ...

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

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

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

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

Как победить подтормаживание при листании ViewPager со списками listview? - Программирование Android
Как победить подтормаживание при листании ViewPager со списками listview? если быстро листать (ну или даже не очень быстро), то...

FindViewById - Программирование Android
Назрел вопрос, почему в MainActivity мы пишем, например, ListView lvMain = (ListView) findViewById(R.id.lvMain); А в другом классе можно...

findViewById и Fragment - Программирование Android
Пытаюсь использовать getView().findViewById Но не работает

FindViewByID возвращает Null - Программирование Android
День добрый. Я в разработке андроида новичек, и застрял можно сказать в самом начале. Имеется проект типа hello world Один...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru