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
是一个IterableInt
不可用,这就是代码不可用的原因。如果使用:
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
是一个IterableInt
不是,这就是你的代码不工作的原因。它不是完全有效的,因为它需要是List
,而不仅仅是List
:)捕捉得好,我修复了它。谢谢^^只需添加第三个选项:对于(从10到0){}
它不是完全有效的,因为它需要是列表
,而不仅仅是列表
:)很好的捕获,我修复了它。谢谢^^只需添加第三个选项:for(i in 10 downto 0){}