Класс 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 от имени приложения