Продолжаем курс по обучению основам разработки мобильных приложений в Android Studio на языке Kotlin.

В этом уроке создадим второй экран в приложении, и настроим взаимодействие между экранами с передачей данных.

Предыдущий урок, в котором мы обрабатывали нажатия кнопок, здесь

Продолжаем разработку приложения на языке Kotlin, которое мы делали на прошлом уроке. Пока что наше приложение имеет только один экран. В этом уроке мы добавим второе активити, которое будет отображать экран с данными, полученными на основе данных с первого экрана. При нажатии кнопки Random будет отображаться окно со случайным числом от нуля до текущего значения счетчика.

Вы узнаете

  • Как запустить новое активити с помощью интента
  • Как передать данные во второе активити через интент
  • Как получить данные, переданные через интент во втором активити

Создаем новое активити

  1. Раскройте пакет с именем com.example.android.myfirstapp по пути apps > java > com.example.android.myfirstapp.
  2. Правым кликом выберите команду File > New > Activity > Empty Activity.
  3. В окне настроек нового активити установите для него имя SecondActivity. Убедитесь, что в поле Source Language установлен Kotlin.

Также проверьте им пакета, оно должно соответствовать вашему приложению.  Если вы не выделили имя пакета в меню при вызове команды добавления нового активити, установите в это поле android.example.com.myfirstapp.

4. Нажмите  Finish. Android Studio создаст файл на языке Kotlin и файл макета на языке XML  для нового активити.

5. Дождитесь синхронизации gradle в Android Studio.Gradle это система сборки, которая используется в Android Studio для компиляции и постройки приложения. Вы будете видеть сообщения от gradle о прогрессе сборки приложения внизу экрана.

Изучите файл манифеста

  1. Откройте файл манифеста приложения по пути app > manifests > AndroidManifest.xml.Файл манифеста содержит информацию о приложении, включая список всех активити.
  2. Обратите внимание на текст между тегами <activity>  для MainActivity:Как видите, тег <activity> содержит параметр имени активити. MainActivity запускается после при старте приложения, поэтому включает дополнительные параметры, которые определяют его как стартовое активити.
  3. Изучите тег <activity> для второго активити. Он содержит только параметр имени.

Каждое активити должно быть определено в файле манифеста. Вы можете добавить новое активити в приложение не через меню добавления активити, но тогда вам нужно будет вручную прописать его в манифесте.

Изучите файл Kotlin нового активити

  1. Откройте файл SecondActivity.kt.
  2. Обратите внимание на метод onCreate(). Постмотрите на вызов setContentView(). Этот метод указывает файл макета activity_second.xml как разметку нового активити.
setContentView(R.layout.activity_second);

В этом активити мы добавим метод отображения случайного числа. Но сначала нам нужно определить поле в макете для его отображения.

Создаем макет для нового активити

Экран нового активити будет отображать заголовок и случайный номер. На вкладке дизайн редактора макетов можно увидеть, как будет выглядеть экран:


Добавьте TextView для заголовка

  1. Откройте файл activity_second.xml. Вы увидите пустой ConstraintLayout. Это макет по умолчанию для шаблона Empty Activity.
  2. Добавьте  TextView из палитры компонентов. Этот TextView будет использовано для отображения заголовка вверху экрана.
  3. Ограничение верхнего края TextView установим по верхней границе окна, левый край по левой стороне, а правый край по правой стороне экрана. Нижний край не ограничиваем.
  4. Установите значение ширину match_parent, а высоту wrap_content, поэтому высота изменится в соответствии с высотой содержимого.
  5. Установите идентификатор @+id/textview_label.
  6. Установите верхний, левый и правый отступ 24dp. Левый и правый отступы могут также иметь значение «start» и «end» для поддержки локализации языков с написанием справа налево.
  7. Установите значение параметра цвета текста @color/colorPrimaryDark и размер текста 24sp.
  8. Поместите текст в TextView  «Это случайное число между 0 и %1d.» Спецификатор %1d будет заменен числом в процессе работы приложения.
  9. Поместите текст в ресурсы с именем random_heading.

Это код XML для TextView, которое отображает заголовок:

<TextView

android:id="@+id/textview_label"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginLeft="24dp"

android:layout_marginRight="24dp"

android:layout_marginTop="24dp"

android:text="@string/random_heading"

android:textColor="@color/colorPrimaryDark"

android:textSize="24sp"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toTopOf="parent"

/>

Добавьте TextView для отображения случайного числа

  1. Добавьте TextView для отображения случайного числа.
  2. Установите значения параметров высоты и ширины wrap_content.
  3. Этот TextView будет находиться ниже TextView заголовка. Ограничьте верхний край по нижнему краю TextView заголовка. Остальные ограничения установите по остальным сторонам экрана.
  4. Установите идентификатор @+id/textview_random.
  5. Установите значение верхнего, леаого и правого отступов 24dp.
  6. Установите значение параметров textColor в @android:color/whitetextSize в 72sp, и textStyle в bold.
  7. Напишите букву R в текстовом поле. Этот текст является просто заменителем, пока не будет сгенерировано случайное число.
  8. Установите значение параметра layout_constraintVertical_bias в 0.45.Этот TextView имеет ограничения по всем краям, так что лучше использовать вертикальные смещения, чем отступы для регулировки вертикального положения, чтобы макет одинаково хорошо выглядел в разных ориентациях и размерах экрана.

Это код XML для  TextView которое отображает случайный номер:

<TextView

android:id="@+id/textview_random"

android:text="R"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="@android:color/white"

android:textSize="72sp"

android:textStyle="bold"

app:layout_constraintTop_toBottomOf="@+id/textview_label"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintVertical_bias="0.45"

/>


admin

Обучающие видео-уроки по разработке приложений для операционной системы Android. Мы поможем любому новичку стать продвинутым разработчиком андроид-приложений!

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.