В этом уроке продолжим модифицировать наше приложение Расписания уроков для андроид устройств, и изменим принцип загрузки данных во фрагменты.
В предыдущей версии информация поступала из строковых массивов, которые были созданы в файле String.xml, посредником между данными и приложением являлся Array Adapter, а сегодня сделаем загрузку из базы данных SQLite.
Она будет находиться в apk файле, вместе с самим приложением, так что никаких настроек или манипуляций не нужно будет делать. Установил, открыл - работает.
Содержание:
- Создание базы данных в Excel
- Использование DB Browser for SQLite
- Создание директории assets
- Класс DatabaseHelper.java для работы с базой данных
- Настройки таблицы
- Работа с фрагментами
- Cкачать архив для ознакомления - проект Расписание для уроков:
- Создание расписания уроков для андроид устройств. Часть 2. База данных SQLITE и фрагменты + БОНУС :
Кто не читал статью "Создание расписания уроков для андроид устройств. Array Adapter для фрагментов" переходите по ссылке, в ней вы сможете скачать файл проекта, который будем редактировать.
Создание базы данных в Excel
В прошлой статье я не оговорился, сказав, что базу данных будем делать в Excel. Давайте создадим таблицу с расписанием уроков, по классам, дням недели и перечнем занятий.
Для этого в новой книге дадим названия полей таблицы:
- class - номер класса(11-6)
- day - день недели(1-5)
- urok_id- порядок уроков
- urok - название предмета.
На втором листе книги напишем номер предмета и название, с помощью функции на первом листе в столбец urok введем формулу =СЛУЧМЕЖДУ(1;13) так как на втором листе 13 предметов, а в соседнюю ячейку =ВПР(D2,Лист2!A:B;2;0) для получения списка пердметов.
Использование DB Browser for SQLite
Затем скопируем как значения получившийся список на новый лист и сохраним его как CSV(разделитель - запятые).
Далее нам понадобится программа DB Browser for SQLite (я пользуюсь версией 3.5.1), в которой создадим новую базу данных(New Database), назавем ее 1.sqlite.
Нажмем File->Import->Table from CSV file.., укажем путь к сохраненной ранее книге, присвоим название таблице myrasp, поставим галочку Column name in first line, кодировка Other - CP1251, разделитель ";" и нажмем Ok.
Модифицируем таблицу myrasp, нажав ПКМ, добавим новое поле(Add field) "_id" с типом text или integer, отметим галочками PK(первичный ключ) и AI(автоинкремент). Поле "_id" можно поднять выше в списке полей таблицы.
Создание директории assets
Вернемся в Android Studio и создадим папку assets для хранения нашей базы данных SQLite, нажав в проекте ПКМ: New->Folder->Asset Folder. Если вы скопируете 1.sqlite то можно сразу в эту папку вставить файл, я же в Total Comander переименую в rasp.sqlite и скопирую в проект в папку assets. Когда мы перейдем в среду разработки Android Studio, то в папке будет видна наша база.
Изменения не коснутся файлов MainActivity.java и MainActivity11.java, будем использовать код из предыдущего проекта. В файле fragment_main11.java, отвечающем за отображение уроков понедельника уберем конструкцию switch(classId){} целиком, удалим переменную ListAdapter adapter.
Класс DatabaseHelper.java для работы с базой данных
Создадим новый класс DatabaseHelper.java, он понадобится для связи с базой данных, открытия, чтения данных.
Код DatabaseHelper.java
Данный код универсален для любых проектов, в настройках можно менять названия переменных DB_NAME, TABLE, COLUMN_.
Настройки таблицы
Напишем название базы данных и таблицы в переменные
Присвоим поля таблицы myrasp переменным
.
Хочу обратить ваше внимание на переменную DB_PATH, которую я для упрощения написал просто "/data/data/"+название пакета+"/database/". В моем случае название пакета - ru.maxfad.myraspisanie, у вас может и будет отличаться для других приложений.
Работа с фрагментами
Теперь откроем fragment_main11.java, в который добавим метод onCreateView
Поскольку нам нужно получить доступ к фрагменту из активности напишем функцию, в которой свяжемся со слоем фрагмента fragment_main11.xml, а в переменную mList получим ListView для отображения уроков
Во fragment_main11.xml удалим секцию разметки TextView и переименуем id ListView
Добавим переменные для работы с базой данных
В метод onActivityCreate напишем новый экземпляр класса DatabaseHelper и создадим базу данных
Напишем метод onResume в котором и будет происходить выборка данных из таблицы myrasp, выполняться SQL запрос и формироваться список уроков
Как вы можете обратить внимание, в строке " and day=1" и заключается принцип загрузки данных по дням недели, в остальных фрагментах код будет отличаться только номером дня.
При запуске приложения в эмуляторе по нажатию на кнопку в фрагменты будет грузиться информация о расписании уроков, происходит деление по дням недели.
Архив с кодом проекта можно скачать по ссылке ниже, обязательно посмотрите видеоролик по материалам статьи, в нем есть БОНУС: на примере этого приложения я покажу, как работать в Android Studio с макетом с помощью BluePrint+Design.
А на сегодня все, делитесь этой статьей в соцсетях и подписывайтесь на канал YouTube.
Cкачать архив для ознакомления - проект Расписание для уроков:
Создание расписания уроков для андроид устройств. Часть 2. База данных SQLITE и фрагменты + БОНУС :
Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!
С уважением, авторы сайта Компьютерапия
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
Связанные статьи
Новые статьи
- Android приложение для начинающих гитаристов, пишем андроид приложение с аккордами для гитары - 05/09/2021 13:14
- Android Studio: получение JSON из базы данных с помощью PHP. Урок № 4 - 21/02/2021 07:12
- Android Studio: получение JSON в ListView с сервера на хостинге. Урок № 3 - 04/12/2020 21:46
- Android Studio: получение JSON в ListView и ArrayAdapter. Урок № 2 - 04/12/2020 20:39
- Android Studio: получение JSON в RecyclerView и CardView. Урок № 1 - 04/12/2020 19:40
- JS база данных и ANDROID STUDIO. Часть 3 - 15/12/2019 06:40
- Уведомления - Notifications в Android Studio - 16/04/2019 18:14
- Блютуз подключение в Android (проект для Arduino). Часть 1. - 12/04/2019 17:14
- Установка android studio и настройка SDK на VirtualBox с нуля - 19/01/2019 11:52
- Android Studio Как сделать виджет - игру Орел или решка - 08/04/2018 19:38
- Android Studio: Как сделать боковое меню с помощью NavigationDrawer - 05/04/2018 20:35
- Android Menu, как сделать меню андроид - 08/03/2018 14:44
- Создание подписанного приложения для android. Generate Signed APK. - 17/02/2018 09:50
- Android and Jsoup. Парсим вебсайт на вордпрессе. Расписание уроков - часть 3 - 15/01/2018 18:25
Предыдущие статьи
- Создание расписания уроков для андроид устройств. Array Adapter для фрагментов. - 06/12/2017 15:07
- Создание фрагментов и использование вкладок для Android - 19/11/2017 05:16
- SplashScreen в Android: пишем заставку - 18/08/2017 19:06
- Диалог в андроид: пишем приложение в Android Studio - 13/08/2017 11:27
- Intent - Android приложение с несколькими Activity - 17/06/2017 17:05
- Создание списка ListView и ArrayAdapter в Android Studio - 09/06/2017 20:38
- Используем SharedPreferences для android - 05/05/2017 18:01
- Toast в Android Studio: пишем приложение с сообщениями - 04/05/2017 17:38
- Приложение-браузер для android устройств - 03/03/2017 16:56
- Android приложение за 5 минут. Часть 2 - 03/03/2017 16:33
- Создать андроид приложение за 5 минут - 22/11/2016 18:08
- Создание эмулятора Android, настройка AVD - 04/09/2016 15:19
- Установка Android Studio, настройка SDK - 04/09/2016 12:04
- Как начать программировать начинающим пользователям для андроид - 04/09/2016 10:28