我有一个非常简单的列表(因此没有必要创建一个扩展BaseAdapter的自定义适配器).我使用ArrayApdater来实现这一点.
当我想更改适配器的值时,有一个构建错误说有两个allAll方法,kotlin不知道使用哪个.
这是示例代码:
val List = Collections.emptyList<Any>() // Just for sample. val adapter = ArrayAdapter<Any>(this, androID.R.layout.simple_spinner_item, List) // This line is OK // Some work later adapter.clear() adapter.addAll(List) // Here's the error
错误消息是:
Error:(79, 35) Overload resolution ambiguity: public open fun addAll(p0: (MutableCollection<out Any!>..Collection<Any!>?)): Unit defined in androID.Widget.ArrayAdapter public open fun addAll(vararg p0: Any!): Unit defined in androID.Widget.ArrayAdapter
怎么解决?
解决方法:
ArrayAdapter中有两个addAll方法:
> ArrayAdapter.addAll(T …项目)
> public voID addAll(@NonNull Collection<?extends T> collection).
所以编译器无法推断出你想调用哪一个方法,因为Any有点像Java中的Object.
代替 :
val List = Collections.emptyList< Any>()使用val List = Collections.emptyList< String>().
并更改ArrayAdapter< Any>到ArrayAdapter< String>
应该解决错误.
希望能帮助到你.
总结以上是内存溢出为你收集整理的android – 如何在Kotlin中调用ArrayAdapter.addAll方法?全部内容,希望文章能够帮你解决android – 如何在Kotlin中调用ArrayAdapter.addAll方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)