Метод createChooser
Статический метод createChooser класса
Intent
возвращает новый intent для
startActivity.
Пользователь сам выбирает приложение,
которому уйдёт исходный intent,
например ACTION_SEND.
Заголовок диалога задают параметром title.
Синтаксис
val chooser = Intent.createChooser(sendIntent, "abcde")
Параметры
| Параметр | Описание |
|---|---|
target |
Intent, который нужно передать выбранному приложению. |
title |
Подпись в диалоге выбора. Может быть null.
|
Пример
Давайте предложим отправить строку 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 sendIntent = Intent(Intent.ACTION_SEND).apply {
type = "text/plain"
putExtra(Intent.EXTRA_TEXT, "12345")
}
val chooser = Intent.createChooser(sendIntent, "abcde")
startActivity(chooser)
}) {
Text(text = "abcde")
}
}
}
}
На экране кнопка откроет chooser
с заголовком "abcde" и списком приложений.
Пример
Давайте откроем VIEW через chooser для ссылки:
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 viewIntent = Intent(
Intent.ACTION_VIEW,
Uri.parse("https://example.com/12345"),
)
startActivity(Intent.createChooser(viewIntent, "12345"))
}) {
Text(text = "12345")
}
}
}
}
На экране пользователь выберет браузер или другое приложение для ссылки.
Смотрите также
-
метод
setAction,
ACTION_SEND перед chooser -
метод
setType,
MIME для send intent -
метод
startActivity,
запуск chooser intent -
класс
Intent,
где объявлен createChooser