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

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

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

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

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

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

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

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

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2016, 15:30
Привет! Вот еще темы с ответами:

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 Но не работает


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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