¿Cómo llamar al método ArrayAdapter.addAll en Kotlin?

Tengo una list muy simple (por lo que no es necesario crear un adaptador personalizado que extienda BaseAdapter). Yo uso un ArrayApdater para implementar esto.

Cuando quiero cambiar el valor del adaptador, hay un error de compilation que dice que hay dos methods all all y kotlin no sabe cuál usar.

Aquí está el código de muestra:

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 

El post de error es:

  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 

¿Cómo resolverlo?

Hay dos methods addAll en ArrayAdapter :

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

por lo que el comstackdor no puede inferir a qué método desea llamar, porque Any es algo así como Object en Java.

En lugar de: val list = Collections.emptyList<Any>() use val list = Collections.emptyList<String>() .

Y cambie ArrayAdapter<Any> a ArrayAdapter<String>

El error debe ser resuelto.

Espero eso ayude.

Deberías usar String lugar de Any

Tu código debería ser así.

 val list = Collections.emptyList<String>() // Just for sample. val adapter = ArrayAdapter<String>(activity, R.layout.simple_spinner_item, list) // This line is OK // Some work later adapter.clear() adapter.addAll() 
  • ¿Por qué mi configuration de RxJava está bloqueando mi subprocess de interfaz de usuario? Trabajar con la callback BluetoothAdapter.startLeScan
  • Sintaxis de la function de Kotlin
  • No puedo permitir que mi aplicación use el permiso dibujar sobre otras aplicaciones
  • ¿Cómo se organizan múltiples corrutines y bloques de expectativas en una testing de Kotlin Spek?
  • La conversión de unidades de kilómetros a millas no devuelve el resultado esperado
  • ¿Cómo puedo establecer el JsName para el campo de respaldo de una propiedad en Kotlin?
  • El parámetro especificado como no nulo es nulo en ArrayAdaper
  • Diseñando elementos HTML en Kotlin-js
  • ¿Vale la pena replace Quasar y Comsat con Ktor?
  • ¿Cómo selecciono qué sobrecarga de Java sobrescribir en una class derivada de Kotlin?
  • La function Kotlin requiere nada, pero se define como un tipo diferente