gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:00 36 4
gpt4 key购买 nike

我有一个非常简单的列表(因此没有必要创建一个扩展 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

如何解决?

最佳答案

有两个addAll ArrayAdapter 中的方法:

  1. ArrayAdapter.addAll(T ... items)
  2. public void addAll(@NonNull Collection<? extends T> collection) .

因此编译器无法推断您要调用哪一个方法,因为 Any有点像Object在 Java 中。

代替: val list = Collections.emptyList<Any>()使用 val list = Collections.emptyList<String>() .

并更改ArrayAdapter<Any>ArrayAdapter<String>

应该解决错误。

希望对您有所帮助。

关于android - 如何在 Kotlin 中调用 ArrayAdapter.addAll 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45672660/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com