И так в пред идущем урок мы закончили верстку экрана авторизации. А в этом уроке я расскажу как cделать переход между экранами. Мы разберем что такое Activity и как же сделать навигацию от одного экрана к другому.
Для начала немного теории. В Андроиде идет связка работы Java/Kotlin кода с xml файлами. Когда мы работали с ресурсами из xml файлов - мы обращались к ним через @string или @drawable. А если нам нужно обратиться к ресурсам из Java/Kotlin кода - мы можем это сделать через специльный сгенерировынный класс R в котором храняться ссылки на xml файлы и их внутренние теги (образно). Нужно помнить что все xml файлы должны лежать в своих папках. Как вы может уже заметили – файл с разметкой для UI лежит в папке res/layout, а вот весь код который пишем на Java/Kotlin должен быть размещен в папке src/java или src/kotlin
Также нужно понимать. Что системе андроид нужно знать какие компоненты используются в приложении и как с ними работать. Для этого при разработке приложений мы всегда декларируем все используемые компоненты андроида в специально файле AndroidManifest.xml. При установки приложения – Андроид считывает файл AndroidManifest и запоминает какие компоненты используются внутри приложения. Вы можете открыть этот файл и увидите там тег Application а в нем тег activity. У которого есть аттрибут name который указывает на существующий класс MainActivity.
Компонент андроид который отвечает за отображение экрана называется – Activity. Его мы и будем использовать в этом уроке.
Для того чтобы создать свой компонент, a нам это нужно для того чтоб открыть свой новый экран. мы должны создать класс и использовать наследование от системного класса Activity. Мы используем наследование для того, чтоб быть уверенными что основую логику для отображения нового экрана и его контента берет на себя система андроид, а не разработчик.
Перейдем немного к практике. Для того чтоб создать и запустить второй экран. Нам надо сделать 4 вещи:
Ну и приступим к реализации нашего плана.
Послед того как мы создали файл. Открываем его и модифицирируем как нам угодно. Я просто создам текст по среди экрана. Для этого задам значение аттриюута android:text=”Second screen” и выставлю необходимые аттрибуты для того чтоб текст расположился по центру.
ПРИМЕР КОДА ТЕКСТ ВЬЮ и как это выглядит.
Android studio создала который нам нужно наполнить следующим контактом.
ПРИМЕР кода с описанием
Где class SecondActivity: Activity() – обьявлением класса который наследуется от класса Activity
НУЖНО ЛИ ОН КРИТ ЕСЛИ МОЖНО КОНСТРУТКОР? ДЛЯ ОБЛЕГЧЕНИЯ
override fun onCreate(savedState: Bundle?) – обьявление функции которая переопределяет функцию родителя. Эта функция – это точка входа. Эта самая первая функция нашего экрана которую Андроид вызовет. Именно тут начинается жизненый цикл экрана. Поэтому тут мы вполне себе можем вызвать функцию setContentView() и паредать в нее адресс нашего xml файла с разметой для нового экрана R.layout.activity_seconds
и выглядит это вот так:
ПРИМЕР КОДА АКТИВИТИ
Вот все. Теперь нам осталось добавить обработчик нажатия из предидущего урока на кнопку на уже существующем экране из предидущих уроков или из свежесозданного проекта и запустить новый экран. Для этого нам необходимо созхдать функцию для запуска активити –назовемм ее goToNextScreen() и вызовем ее при нажатии на кнопку из обработчика кнопки. Выглядить функция будет так:
ПРИМЕР функции
val intent = Intent(this, SecondActivity::class.java) – создание обьекта класса Intent (от слова Intentntion,намерение) куда мы передаем существущий экран как контекст и класс который будет создан и запущен. У которого вызовется метод fun onCreate(savedSate: Bundle) для создания и отрисовки нового экрана.
startActivity(intent) – и есть наш запуск экрана. Мы попросили андроид запустить другой экран.
Вот и все. По нажатии на кнпоку мы увидим как запустился наш экран.
полный код с обработчиком и запуском выглядит вот так:
ПРИМЕР