'receiver type mismatch' 有 Fragment 和 Anko toast
'receiver type mismatch' with Fragment and Anko toast
我正在尝试使用 Jetbrains 的 Anko 库在我的应用程序中轻松显示 Android toast 消息。
这里是相关的代码片段:
val message : CharSequence = "Recycled: ${holder.taskEditText.text}"
(tasksFragment as Fragment).toast(text = message)
和错误:
Error:(80, 45) Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline fun Fragment.toast(text: CharSequence): Unit defined in org.jetbrains.anko
public inline fun Fragment.toast(textResource: Int): Unit defined in org.jetbrains.anko
public fun Context.toast(text: CharSequence): Unit defined in org.jetbrains.anko
public fun Context.toast(textResource: Int): Unit defined in org.jetbrains.anko
public inline fun AnkoContext<*>.toast(text: CharSequence): Unit defined in org.jetbrains.anko
public inline fun AnkoContext<*>.toast(textResource: Int): Unit defined in org.jetbrains.anko
我是 Kotlin 的新手,一段时间以来一直在寻找解决这个问题的方法。感谢所有帮助。
由于错误提示 none 适用,因此您可能导入了与 Android/Support 库定义的不同的 Fragment
class。
检查您的导入。
我在使用 import android.support.v4.app.Fragment
时遇到了同样的问题。
正如 Kingsley Adio 在之前的评论中所说,在模块 gradle 文件中指定的依赖项中添加以下行:
dependencies
{
...
implementation "org.jetbrains.anko:anko-support.v4-commons:$your_anko_version"
...
}
然后将此导入添加到您的 .kt 文件中:
import org.jetbrains.anko.support.v4.toast
我正在尝试使用 Jetbrains 的 Anko 库在我的应用程序中轻松显示 Android toast 消息。
这里是相关的代码片段:
val message : CharSequence = "Recycled: ${holder.taskEditText.text}"
(tasksFragment as Fragment).toast(text = message)
和错误:
Error:(80, 45) Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline fun Fragment.toast(text: CharSequence): Unit defined in org.jetbrains.anko
public inline fun Fragment.toast(textResource: Int): Unit defined in org.jetbrains.anko
public fun Context.toast(text: CharSequence): Unit defined in org.jetbrains.anko
public fun Context.toast(textResource: Int): Unit defined in org.jetbrains.anko
public inline fun AnkoContext<*>.toast(text: CharSequence): Unit defined in org.jetbrains.anko
public inline fun AnkoContext<*>.toast(textResource: Int): Unit defined in org.jetbrains.anko
我是 Kotlin 的新手,一段时间以来一直在寻找解决这个问题的方法。感谢所有帮助。
由于错误提示 none 适用,因此您可能导入了与 Android/Support 库定义的不同的 Fragment
class。
检查您的导入。
我在使用 import android.support.v4.app.Fragment
时遇到了同样的问题。
正如 Kingsley Adio 在之前的评论中所说,在模块 gradle 文件中指定的依赖项中添加以下行:
dependencies
{
...
implementation "org.jetbrains.anko:anko-support.v4-commons:$your_anko_version"
...
}
然后将此导入添加到您的 .kt 文件中:
import org.jetbrains.anko.support.v4.toast