Слайд 1Лекция №8
«Web, JSON»
Москва 2019
Слайд 3Библиотека Volley
Volley - это HTTP-библиотека, которая упрощает и ускоряет
работу в сети для приложений Android. Доступна на GitHub .
Библиотека
обладает следующими возможностями:
Автоматическое планирование сетевых запросов.
Несколько одновременных сетевых подключений.
Прозрачное кэширование отклика диска и памяти со стандартной согласованностью HTTP- кэша .
Поддержка приоритизации запросов.
Простота настройки, например, для повторных попыток и откатов.
Строгий порядок, позволяющий легко заполнять ваш пользовательский интерфейс данными, извлекаемыми асинхронно из сети.
Инструменты отладки и трассировки.
Volley не подходит для потоковых передачи видео.
Слайд 4JSON OBJECT
JSON был создан для передачи данных между сайтами или
из сайта.
Во многих API есть JSON,
Facebook API, vk API и.т.д.
https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22
https://www.jsonmate.com/
Слайд 5Пример программы для получения запросов JSON
https://jsonplaceholder.typicode.com/todos
https://developer.android.com/training/volley/request
Слайд 6Шаблон синглетон Java
Одиночка (англ. Singleton) — порождающий шаблон проектирования, гарантирующий,
что в однопоточном приложении будет единственный экземпляр некоторого класса, и
предоставляющий глобальную точку доступа к этому экземпляру.
У класса есть только один экземпляр, и он предоставляет к нему глобальную точку доступа. При попытке создания данного объекта он создаётся только в том случае, если ещё не существует, в противном случае возвращается ссылка на уже существующий экземпляр и нового выделения памяти не происходит.
Например, класс настроек приложения.
Слайд 7Шаблон синглетон Java
Если ваше приложение постоянно использует сеть, вероятно, наиболее
эффективно настроить один экземпляр RequestQueue, который будет работать в течение
всего срока службы вашего приложения. Рекомендуемый подход заключается в реализации одноэлементного класса, который инкапсулирует RequestQueue и другие функциональные возможности Volley.
Ключевой концепцией является то, что RequestQueue должен создаваться с контекстом приложения, а не с контекстом действия. Это гарантирует, что RequestQueue будет длиться в течение всего жизненного цикла вашего приложения, а не воссоздается каждый раз, когда воссоздается действие (например, когда пользователь поворачивает устройство).
Слайд 8ListView, адаптеры, слушатели событий
Слайд 9ArrayAdapter
В Android часто используются адаптеры. Если говорить в общих чертах,
то адаптеры упрощают связывание данных с элементом управления.
ArrayAdapter является простейшим
адаптером, который специально предназначен для работы с элементами списка типа ListView, Spinner, GridView и им подобным.
// определяем массив типа String
final String[] products = new String[] {
"Телефон", "Телевизор", "Ноутбук"
};
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list_item, products);
listView.setAdapter(adapter);
Слайд 10Вид приложения зависит от устройства
На телефоне две активности.
На планшете
одна активность.
Один код должен выполняться в нескольких
активностях.
Вместо дублирования кода используются
фрагменты
Фрагменты дают возможность повторно
использовать код
Слайд 11Фрагмент как и активность имеет макет
На телефоне две активности.
На планшете
одна активность.
Один код должен выполняться в нескольких
активностях.
Вместо дублирования кода используются
фрагменты
Фрагменты дают возможность повторно
использовать код
Слайд 12Фрагмент как и активность имеет макет
Слайд 14Фрагменты
Этот метод является аналогом метода setContentView() активностей в мире фрагментов.
У
каждого фрагмента должен быть определен открытый конструктор без аргументов
Аргумент container
передается активностью, использующей фрагмент
Слайд 17Списковый фрагмент
ListFragment — разновидность Fragment, специализированная
для работы со списковым представлением.
В макете по умолчанию
этого фрагмента содержится компонент ListView