无法在for循环或每个循环中使用像“直到”这样的基本kotlin函数

时间:2019-03-11 07:34:58

标签: android kotlin

为了不重复可能会引起某些背景知识的最初问题,我将附加一个link to it

因此,我目前需要遍历ChipGroup,当我尝试引入“ for each”或“ until”时,android studio给了我一个未解决的参考通知。 我已经检查并再次检查,但我认为我写的方式不是很差,但是工作室出于某种原因不允许我使用它。 我剩下的完全是kotlin的代码完全没问题。

    questionButton.setOnClickListener {

        questionChipGroup.forEach

        for ( i in questionChipGroup until questionChipGroup.childCount){


        }


        postQuestion(
            questionTitle.text.toString(),
            questionDetails.text.toString(),
            questionTags.text.toString(),
            System.currentTimeMillis().toString()
        )

    }

enter image description here

在上面的示例中,untilforEach均为红色,基本上是Android无法识别的。

我试图使缓存无效并重新启动,但这没有帮助。 我想念什么吗?

1 个答案:

答案 0 :(得分:3)

您正在Android中使用ChipGroup API。它基本上是ViewGroup的子类型,因此要遍历ChipGroup

for ( index in 0 until questionChipGroup.childCount){
    val childView = questionChipGroup.getChildAt(index)

    // Process childView here
}
Kotlin中的

forEach仅适用于Iterator。因为ChipGroup未实现Iterator接口,所以不能在其上使用forEach

Kotlin中的

until不是固定功能,而是扩展功能。它仅适用于Byte, Short, Int, Long类型,这就是为什么您不能从questionChipGroup(类型为ChipGroup)调用它的原因。