Невозможно получить контекст в Compose

Я пытаюсь добавить popover в свое приложение для создания реактивных самолетов. Popover.kt находится в той же структуре папок.

Но я продолжаю получать ошибку context при попытке добавить shareText и copyText к моим onShareClick и onCopyLinkClick в MainActivity.kt. Я получаю ошибки context, даже когда пытаюсь импортировать предложенные коды.

Неразрешенная ссылка: context
Невозможно получить доступ к «CompletedContinuation»: он внутренний в «kotlin.coroutines.jvm.internal»
Невозможно получить доступ к «NoOpContinuation»: он находится в личном файле
Несоответствие типов: предполагаемый тип — CoroutineContext, но ожидался контекст.

Это код, который я пытаюсь прикрепить к MainActivity.kt.

// POPUP OVERLAY
if (showPopover) {
    Popover(
        onDismiss = { showPopover = false },
        onShareClick = {
            shareText(context, "Invite people to join you in the app!")
        },
        onCopyLinkClick = {
            copyText(context, "Invite people to join you in the app!")
        }
    )
}

fun shareText(context: Context, text: String) {
    val intent = Intent(Intent.ACTION_SEND).apply {
        type = "text/plain"
        putExtra(Intent.EXTRA_TEXT, text)
    }
    context.startActivity(Intent.createChooser(intent, "Share text via"))
}

fun copyText(context: Context, text: String) {
    val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as android.content.ClipboardManager
    val clip = android.content.ClipData.newPlainText("Invite Text", text)
    clipboard.setPrimaryClip(clip)
    Toast.makeText(context, "Copied!", Toast.LENGTH_SHORT).show()
}
2
0
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Скорее всего, это вызвано неправильным импортом, примерно так:

import kotlin.coroutines.jvm.internal.CompletedContinuation.context
import kotlinx.coroutines.flow.internal.NoOpContinuation.context

Контекст нельзя импортировать, его необходимо получить во время выполнения. Удалите импорт и вместо этого добавьте это над Popover:

val context = LocalContext.current

Другие вопросы по теме

Похожие вопросы

Как просматривать файлы на эмуляторе Android в Visual Studio (MAUI), аналогично «Проводнику устройств» в студии Android?
Как я могу добавить изображения, наложенные друг на друга [FLUTTER]
Какие пакеты мне нужно добавить BroadcastReceiver в мое приложение MAUI .NET 8 C#?
Как решить проблему «Использовать другую версию зависимости»?
Мой компонент ScrollView не работает, несмотря на все онлайн-решения
SpriteRenderer меняет спрайт во время выполнения, не работает в сборке Android?
ContentResolver.takePersistableUriPermission: SecurityException Не найдено постоянных разрешений для UID 10434 и содержимого Uri:/
Для действия SingleTop повторно используется предыдущий экземпляр, даже если действие не находилось на вершине стека
Новый диспетчер учетных данных Google выдает исключение TransactionTooLargeException
Android: когда приложение было открыто нажатием на уведомление, нажатие на дальнейшие уведомления открывает только приложение, не изменяя активность