android– 如何在Kotlin中调用ArrayAdapter.addAll方法?

android– 如何在Kotlin中调用ArrayAdapter.addAll方法?,第1张

概述我有一个非常简单的列表(因此没有必要创建一个扩展BaseAdapter的自定义适配器).我使用ArrayApdater来实现这一点.当我想更改适配器的值时,有一个构建错误说有两个allAll方法,kotlin不知道使用哪个.这是示例代码:vallist=Collections.emptyList<Any>()//Justforsample

我有一个非常简单的列表(因此没有必要创建一个扩展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方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1119571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存