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

ViewPager.setCurrentItem() внутри LoaderCallbacks.onLoadFinished() - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Прогресс бар в кнопку http://www.cyberforum.ru/android-dev/thread1359839.html
Здравствуйте! Подскажите пожалуйста как сделать кнопку, умеющую на себе отображать прогресс выполнения задачи. В стандартной <Button /> подобного параметра я не нашёл.
Android Листать картинки На устройстве есть папка с картинками подскажите как отобразить их на экране по одной а при проведении по картинке в бок появлялась другая. Отображать понял как а вот листать как не разобрался. http://www.cyberforum.ru/android-dev/thread1359749.html
Android и VS 2012 Android
Доброго времени суток. Решил попробовать написать приложение под андроид, погуглил, нашел интересную штуку xamarin для VS. установил все, что просилось. При создании приложения с активити проблем нет, а вот с дизайнером есть. За помощь очень буду благодарен.
Заказать программу Android Studio, движок для программы изучения английского
Требуется написать движок для программы изучаем-английский . В программе должно быть реализовано : Задания,на которые надо ответить «да» или «нет» Задания на правописание Задания на сопоставление слов и картинок В общем главное чтобы , вы сделали движок который будет работать , графика не нужна , сделаю сам. Насчет цены я думаю мы договоримся. Сроки недели 2-3 , я думаю это вполне...
Android Размеры экранов планшетов http://www.cyberforum.ru/android-dev/thread1359614.html
Всем привет. Вот какая штука. У гуглов в доках сказано что если в папочку sw600dp положить разметку, то она будет самостоятельно работать на планшетах от 7 дюймов. Но вот какая штука есть планшетик 7 дюймов и он эту разметочку запускать не хочет. Почему так?
Android Скрытое приложение Доброго времени суток. Появилось необходимость реализовать следующие задачи в приложении: 1. Автозагрузка 2. Работа в фоновом режиме и отсутствие иконок приложения в менюшках телефна. 3. Обработка нажатия определённых комбинаций аппаратных клавиш. 4. Возможность отправки по почте сообщений\файлов. Грубо говоря нужно скрытое приложение, которое что-то делает при нажатии на определённые... подробнее

Показать сообщение отдельно
Kemaweyan
2 / 2 / 1
Регистрация: 16.12.2014
Сообщений: 5
22.01.2015, 22:59     ViewPager.setCurrentItem() внутри LoaderCallbacks.onLoadFinished()
Столкнулся с проблемой. В приложении главная активность - список ListView, при выборе элемента списка открывается новая активность с ViewPager, где должен отображаться выбраный элемент списка («подробная информация») с возможностью пролистывания. Данные берутся из БД через LoaderManager. Проблема состояит в том, что в этом случае отваливается панель действий фрагмента, которая появляется только после пролистывания.

Приведу пример. Есть список из, допустим, 10 элементов. Если нажать на элемент №5, то откроется вторая активность с этим самым 5 элементом, но панели дейсвий не будет видно. Если пролистнуть на №4 или №6 - панель появляется. Если потом вернуться на №5 - панель есть. onCreateOptionsMenu фрагмента во всех случаях вызывается.

Проблема эта проявляется только в том случае, если используется LoaderManager, а точнее если переключение на выбраный элемент ViewPager.setCurrentItem() вызывать внутри LoaderCallbacks.onLoadFinished(). Если этот вызов убрать, то при выборе любого элемента списка будет открываться первый (первая страница ViewPager) и с панелью действий всё будет нормально. Аналогично нет проблем, если отказаться от LoaderManager и весь код выполнять в onCreate активности (загрузка курсора, создание адаптера, переключение на выбраную страницу). Но это же не совсем корректно - грузить данные из БД в главном потоке.

В документации к LoaderCallbacks про onLoadFinished() вычитал вот что:

Note that normally an application is not allowed to commit fragment transactions while in this call, since it can happen after an activity's state is saved.
Т.е. получается, что вызов ViewPager.setCurrentItem() в данном месте не совсем правильный? Это могло бы объяснить странный баг с панелью, но как тогда иначе переключить страницу?

Добавлено через 4 часа 6 минут
Проблему, похоже, решил. Помогло это руководство. Конкретно нужно было, видимо, вынести ViewPager.setAdapter() из onLoadFinished() в onCreate(). Для этого пришлось переписать класс адапртера, чтоб можно было присваивать курсору null, а потом менять курсор при необходимости. Теперь панель не пропадает.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru