我正在尝试使用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很新,并且一直在寻找这个问题的解决方案。感谢所有帮助。
答案 0 :(得分:2)
由于错误说没有一个适用,您可能导入了与Android /支持库定义的类不同的Fragment
类。
检查您的进口。
答案 1 :(得分: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