问题描述
我无法显示 Toast 消息。当我尝试调用它时,出现以下错误
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline fun Fragment.toast(message: CharSequence): Toast defined in org.jetbrains.anko
public inline fun Fragment.toast(message: Int): Toast defined in org.jetbrains.anko
public inline fun Context.toast(message: CharSequence): Toast defined in org.jetbrains.anko
public inline fun Context.toast(message: Int): Toast defined in org.jetbrains.anko
public inline fun AnkoContext<*>.toast(message: CharSequence): Toast defined in org.jetbrains.anko
public inline fun AnkoContext<*>.toast(message: Int): Toast defined in org.jetbrains.anko
我也是 kotlin 的新手,我的很多搜索都没有结果,但我相信它真的很简单。
我在这里找到的修复 'receiver type mismatch' with Fragment and Anko toast 没有帮助我。
我有这些依赖
dependencies {
...
implementation "org.jetbrains.anko:anko-commons:$anko_version"
implementation "org.jetbrains.anko:anko-design:$anko_version" // For SnackBars
implementation 'org.jetbrains.anko:anko-appcompat-v7-commons:0.10.8'
implementation "org.jetbrains.anko:anko-support.v4-commons:$anko_version"
}
和这些进口
import org.jetbrains.anko.toast
import org.jetbrains.anko.support.v4.toast
我正在挣扎的事情归结为这个
class MainActivity : AppCompatActivity() {
toast("this toast works")
class Player() {
fun score() {
if (x) {
//do this
} else {
toast("this toast doesn't work")
}
}
}
}
它给了我上面看到的错误。
其他一切似乎都在按照我想要的方式工作。
我想我很难理解为什么我在 MainActivite.kt 顶部导入的某些内容不适用于 .kt 中的所有内容
解决方法
Anko 已弃用。请参阅此页面了解更多信息。
https://github.com/Kotlin/anko/blob/master/GOODBYE.md
我们觉得是时候和 Anko 说再见了。
,像这样使用它:
val toast = Toast.makeText(applicationContext,text,duration)
toast.show()
而不是 applicationContext
键入 this@MainActivity
。另一种方法是将您的上下文保存为全局变量,然后使用 context.toast("Hello World");