¿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() 
  • ¿Cómo delegar la implementación a una propiedad en Kotlin?
  • ¿Cómo agregar una image más como un button al final de mi RecyclerView en Android?
  • Desencryption mucho más lento en comparación con el encryption en Android
  • cómo usar annotations de spring como @Autowinetworking in kotlin?
  • Bajo performance de la animation de layouts de paralaje en Android
  • Cómo modificar la variable de instancia de AsyncTask por separado
  • RXJava ... emiten un observable cada segundo
  • java.lang.NoClassDefFoundError en Kotlin
  • El complemento de Klotlin-Spring de Gradle no abre classs de spring
  • java.lang.IllegalStateException: TextView no debe ser nulo (Android / Kotlin)
  • La propiedad en la interfaz no puede tener un campo de respaldo