# 5. Работа виджетами из Activity Снова про `root` класс для всех виджетов. # View Android SDK включает множество виджетов, которые являются дочерним классом класса `View`. Таким образом, каждый виджет является экземпляром класса `View`, как и отражено на рисунке ниже. ![alt text](https://github.com/sibsutisTelecomDep/blog/blob/main/book/figures/android/android_class_hierarchy_view.svg?raw=true ) Рис. 1. Иерархия класса `View`. [Источник изображения](https://www.mathematik.uni-marburg.de/~thormae/lectures/graphics1/media/vectorart/android_class_hierarchy_view.svg). # Создание нового Activity Для начала, создадим новое `Activity`, в котором будем создавать виджеты и работать из `Activity`. ![alt text](https://github.com/sibsutisTelecomDep/blog/blob/main/book/figures/android/basic_05_create_new_activity.png?raw=true ) Рис. 2. Создание нового `Activity`. Далее, вам откроется окно с настройками нового `Activity`. Необходимо ввести имя и поставить галочку на автоматическое создание файла `layout` для `Activity`. ![alt text](https://github.com/sibsutisTelecomDep/blog/blob/main/book/figures/android/basic_05_create_new_activity_naming.PNG?raw=true ) Рис. 3. Настройка нового `Activity`. Замем вы увидите изменения в структуре проекта: добавится файл с кодом `имя_класса.kt`, появится к нему файл `имя_layout.xml`. Также, не мало важным является добавление `Activity` в файл `AndroidManifest.xml`, который является **основой** вашего проекта. Содержание файла `AndroidManifest.xml`: ```xml ``` Где мы можем увидеть наше новое `Activity` в списке проекта. ## Переход между Activity (Intent, вкратце) В рамках "удобства" по работе с несколькими `Activity` рассмотрим небольшой пример работы класса [Intent]() `Intent` — это абстрактное описание операции, которая должна быть выполнена. Его можно использовать с [startActivity](https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent)) для запуска [Activity](https://developer.android.com/reference/android/app/Activity), [broadcastIntent](https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent)) для отправки его любым заинтересованным компонентам [BroadcastReceiver](https://developer.android.com/reference/android/content/BroadcastReceiver) и [Context.startService(Intent)](https://developer.android.com/reference/android/content/Context#startService(android.content.Intent)) или [Context.bindService(Intent, BindServiceFlags, Executor, ServiceConnection)](https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)) для связи с фоновой службой [Service](https://developer.android.com/reference/android/app/Service). Для начала, нам понадобится только метод `startActivity()`. Добавим переход на другое `Activity` при помощи `Button` во время нажатия (`setOnClickListener`). Добавим кнопку в файле `activity_имя.xml`: ```xml