В приложении три экрана:
| Экран | За что отвечает |
|---|---|
| Logare — вход | Проверяет логин student и пароль 1234. По кнопке Logare или Готово на клавиатуре при правильных данных открывает анкету, при неправильных показывает сообщение. После входа повторно вводить пароль не нужно. |
| Completează CV-ul — анкета | Позволяет выбрать фотографию, заполнить личные и учебные данные, написать текст о себе, а также добавить навыки и хобби. Кнопка Afișare CV сразу открывает готовый профиль, а Înapoi la pagina principală возвращает на главную вместе с введёнными данными. |
| Afișare — просмотр CV | Собирает введённые данные в оформленное CV: шапка с фотографией и должностью, описание, образование, навыки, хобби и личные сведения. Кнопка Salvează сохраняет данные в базе. |
По дополнению преподавателя «laboratorul 2 (fără animație)» эта версия выполнена без анимации.
| Элемент | Назначение |
|---|---|
| Foto | Открывает выбор изображения из файлов телефона. Встроенное фото копируется в Download, но появляется в анкете только после выбора. |
| Nume / Prenume | Фамилия / имя. |
| Poziția dorită | Желаемая должность, например Full Stack Developer. |
| Telefon | Номер телефона, который отображается в контактной информации CV. |
| Data nașterii | Дата рождения; по нажатию открывается календарь. |
| Despre mine | Краткое описание опыта, интересов и профессиональной цели. |
| Lista studiilor | Образование: Superioare — высшее, Medii — среднее. |
| Alt tip de studii + Adaugă | Позволяет добавить свой вариант образования в список. |
| Școala / liceul | Школа или лицей, в котором учился пользователь. |
| Universitatea / colegiul / Grupa | Университет или колледж и учебная группа. |
| Competențe | Навыки. Enter или + добавляет элемент, × удаляет его. |
| Hobby-uri | Хобби. Добавление и удаление работают так же, как для навыков. |
| Feminin / Masculin | Женский / мужской пол. Можно выбрать один вариант; по умолчанию выбран Masculin. |
| Specializarea | Специальность: Informatică — информатика, Tehnologii — технологии. |
| Date introduse | «Введённые данные»: фамилия, имя и дата появляются в соседней колонке; выбранные значения показываются в выделенных полях соответствующих разделов. |
За поведение приложения отвечают восемь Java-файлов. Activity здесь можно понимать как отдельный экран приложения.
Java-файлы находятся в app/src/main/java/com/example/formularjava/.
| Файл | Что делает |
|---|---|
MainActivity.java |
Управляет главным экраном: сравнивает логин и пароль с константами USERNAME и PASSWORD, показывает сообщение при ошибке, открывает другие экраны и принимает данные из анкеты. |
FormActivity.java |
Обрабатывает поля CV, выбор фотографии, календарь, образование, навыки и хобби. Через TextWatcher повторяет ввод имени и фамилии в соседних TextView. |
DisplayActivity.java |
Собирает введённые данные в оформленное CV и проверяет обязательные поля перед сохранением. |
DatabaseHelper.java |
Создаёт базу SQLite и записывает данные CV через ContentValues. Для фотографии сохраняет ссылку на выбранный файл. |
StudentPhoto.java |
Копирует встроенную фотографию в Download, чтобы её можно было выбрать через Foto. |
StudyOption.java |
Модель одного пункта образования: название, пояснение и значок. |
StudyAdapter.java |
Собственный адаптер, который создаёт строки сложного списка образования. |
TagAdapter.java |
Собственный адаптер для вертикальных овальных элементов навыков и хобби; по крестику сообщает форме, какой элемент удалить. |
Остальные основные файлы задают внешний вид и настройки. Папки res и assets находятся внутри app/src/main/.
res/layout/activity_main.xml,activity_form.xml,activity_display.xml— расположение кнопок, полей и подписей на трёх экранах;item_study.xml— строка образования;item_tag.xml— овальный элемент навыка или хобби.res/values/strings.xml— тексты надписей и сообщений.res/values/colors.xmlиstyles.xml— цвета и оформление.res/drawable— карточки, поля, кнопки, значки списка и новый логотип приложения.assets/student_photo.png— фотография, включённая в приложение.app/src/main/AndroidManifest.xml— объявляет экраны, стартовый экран и необходимые разрешения.build.gradle/app/build.gradle— настройки сборки и версия приложения.