Android For循环范围必须有一个';迭代器()';方法

Android For循环范围必须有一个';迭代器()';方法,android,kotlin,Android,Kotlin,我有一个奇怪的错误 val limit: Int = applicationContext.resources.getInteger(R.integer.popupPlayerAnimationTime) for(i in limit) { } 我已经找到了关于该错误的类似答案,但如果您使用: for(item in items) 项需要一个迭代器方法;您正在迭代对象本身 如果要在某个范围内迭代int,有两个选项: for(i in 0..limit) { // x..y is t

我有一个奇怪的错误

val limit: Int = applicationContext.resources.getInteger(R.integer.popupPlayerAnimationTime)
for(i in limit) {

}
我已经找到了关于该错误的类似答案,但如果您使用:

for(item in items)
需要一个
迭代器
方法;您正在迭代对象本身

如果要在某个范围内迭代int,有两个选项:

for(i in 0..limit) {
    // x..y is the range [x, y]
}

这两种方法都创建了一个
IntRange
,它扩展了
IntProgression
,实现了
Iterable
。如果使用其他数据类型(即float、long、double),则相同


作为参考,这是完全有效的代码:

val x: List<Any> = TODO("Get a list here")
for(item in x){}
val x:List=TODO(“在此处获取列表”)
对于(x中的项目){}
因为
List
是一个Iterable
Int
不可用,这就是代码不可用的原因。

如果使用:

for(item in items)
需要一个
迭代器
方法;您正在迭代对象本身

如果要在某个范围内迭代int,有两个选项:

for(i in 0..limit) {
    // x..y is the range [x, y]
}

这两种方法都创建了一个
IntRange
,它扩展了
IntProgression
,实现了
Iterable
。如果使用其他数据类型(即float、long、double),则相同


作为参考,这是完全有效的代码:

val x: List<Any> = TODO("Get a list here")
for(item in x){}
val x:List=TODO(“在此处获取列表”)
对于(x中的项目){}

因为
List
是一个Iterable
Int
不是,这就是你的代码不工作的原因。

它不是完全有效的,因为它需要是
List
,而不仅仅是
List
:)捕捉得好,我修复了它。谢谢^^只需添加第三个选项:
对于(从10到0){}
它不是完全有效的,因为它需要是
列表
,而不仅仅是
列表
:)很好的捕获,我修复了它。谢谢^^只需添加第三个选项:
for(i in 10 downto 0){}