Я пытаюсь добавить 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()
}
Скорее всего, это вызвано неправильным импортом, примерно так:
import kotlin.coroutines.jvm.internal.CompletedContinuation.context
import kotlinx.coroutines.flow.internal.NoOpContinuation.context
Контекст нельзя импортировать, его необходимо получить во время выполнения. Удалите импорт и вместо этого добавьте это над Popover:
val context = LocalContext.current