【问题标题】:Kotlin anko common selector not working as in the provided examplesKotlin anko 通用选择器不像提供的示例那样工作
【发布时间】:2017-06-07 14:30:37
【问题描述】:

当使用示例中提供的 anko 选择器时,它不起作用

val countries = listOf("Russia", "USA", "Japan", "Australia")
selector("Where are you from?", countries) { i ->
    toast("So you're living in ${countries[i]}, right?")
}

在这里定义 lambda 函数时,它说需要两种类型的参数。 (Dialoginterface 和 int)。我被这个困住了。 Alos 默认的 kotlin alertdialog 也在说同样的事情。谁能解决这个问题或告诉我如何在 kotlin 中构建一个带有选择的警报对话框?

【问题讨论】:

    标签: android kotlin anko


    【解决方案1】:

    似乎是示例中的错误。

    selector function source 表示它需要 (DialogInterface, Int) -> Unit,这是一个带有两个参数的函数,因此您可以通过添加缺少的参数来修复您的代码,如下所示:

    selector("Where are you from?", countries) { dialogInterface, i -> /* ... */ }
    

    或者,如果你不使用DialogInterface,只需用下划线忽略它:

    selector("Where are you from?", countries) { _, i -> /* ... */ }
    

    【讨论】:

    • 非常感谢。还有一件事,这个对话界面有什么用?
    • 我相信这是您想在事件处理程序中调用其cancel() or dismiss() 的情况。我在its docs 中没有发现其他看起来有用的东西。
    • 我得到一个未解决的选择器参考。我按照文档的指示包括了 ank-commons 的依赖项。还有人知道吗?
    • 看起来我也需要包含元依赖项,以防有人偶然发现:compile"org.jetbrains.anko:anko:$anko_version"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多