android studios 中的 Anko toast - 未解决的参考以下候选人均不适用

问题描述

我无法显示 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");

访问它

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...