Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
291 of 502 menu
◀ ▶

Класс Intent

Класс Intent передаёт системе описание следующего шага: явный запуск activity, открытие ссылки, звонок или отправка данных. Объект собирают методами вроде setAction, setData и putExtra. Запуск делают через startActivity у context или activity.

Синтаксис

val intent = Intent(this, SecondActivity::class.java) startActivity(intent)

Методы

Метод Описание
putExtra Кладёт значение в intent по строковому ключу.
getStringExtra Читает строку, положенную раньше по ключу.
getIntExtra Читает целое число по ключу с значением по умолчанию.
getBooleanExtra Читает логическое значение по ключу с умолчанием.
setAction Задаёт строковое действие, например ACTION_VIEW.
setData Привязывает адрес ресурса типа Uri.
setType Задаёт MIME-тип данных intent.
setDataAndType Ставит Uri и MIME-тип одним вызовом.
addFlags Добавляет флаг поведения при запуске.
addCategory Добавляет категорию для неявного intent.
setComponent Указывает конкретный класс компонента.
setPackage Ограничивает поиск обработчиков пакетом приложения.
createChooser Оборачивает intent в выбор приложения пользователем.

Значения

Значение Описание
ACTION_VIEW Открыть данные по Uri: страницу, файл или карту.
ACTION_SEND Отправить текст или файл в другое приложение.
ACTION_DIAL Открыть набор номера без немедленного звонка.
ACTION_MAIN Точка входа приложения, часто с категорией LAUNCHER.

Пример

Давайте откроем второй экран с extra по ключу note:

import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Button(onClick = { val intent = Intent(this@MainActivity, SecondActivity::class.java) intent.putExtra("note", "12345") startActivity(intent) }) { Text(text = "abcde") } } } }

На экране кнопка "abcde", нажатие запускает SecondActivity с переданной строкой в extra.

Пример

Давайте откроем ссылку через ACTION_VIEW:

import android.content.Intent import android.net.Uri import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Button(onClick = { val intent = Intent(Intent.ACTION_VIEW).apply { data = Uri.parse("https://example.com/abcde") } startActivity(intent) }) { Text(text = "12345") } } } }

На экране кнопка "12345", нажатие предложит браузер или другое приложение для ссылки.

Смотрите также

  • класс Bundle,
    куда intent складывает extras
  • класс Uri,
    адрес для setData и ACTION_VIEW
  • метод startActivity,
    которым запускают intent
  • класс PendingIntent,
    отложенный intent от имени приложения
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить