2

我正在尝试使用 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 很陌生,并且一直在寻找解决这个问题的方法。感谢所有帮助。

4

2 回答 2

3

由于错误说不适用,您可能导入了一个与FragmentAndroid/Support Library 定义的类不同的类。

检查你的进口。

于 2017-06-07T13:29:35.730 回答
0

我使用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
于 2020-08-14T23:20:13.263 回答