Convierta un ArrayMap en ArrayList – Kotlin

Tengo un ArrayMap y quiero una list de Chat para crear y reciclar.

val chats : ArrayMap<String,Chat>? = ArrayMap() 

RecyclerView.Adapter

 class ChatAdapter(var chats : ArrayList<Chat>){ . . . } 

Obtengo este ArrayMap de firebase. ¿Cuál es la mejor manera de get una ArrayList?

No deberías usar ArrayList en el constructor público (porque entonces te haces depender de exactamente esa implementación). Debería ser la interfaz MutableList :

 class ChatAdapter(var chats : MutableList<Chat>){ 

Supongo que ArrayMap es un Map habitual (porque no conozco esa class). Puedes escribir

 val chats : ArrayMap<String,Chat>? = ArrayMap() // ... initialize the chat val adapter = ChatAdapter(am.values.toMutableList()) 

Si realmente necesita la class ArrayList por alguna razón, puede escribir

 val adapter = ChatAdapter(ArrayList(am.values)) 

Si no necesita una ArrayList explícitamente, puede usar la function ArrayMap.map() como esta:

 val chats : ArrayMap<String,Chat>? = ArrayMap() val list : List<Chat> = chats.map { it.value } 
  • La reference de identificación de Kotlin Textview no funciona con caracteres no ingleses
  • kotlin jvmname ignorado por Gradle?
  • Cómo modificar la variable de instancia de AsyncTask por separado
  • Extensiones de Kotlin para Android y fragments retenidos
  • Error de puntero nulo al hacer reference a RecyclerView en un fragment con Kotlin
  • Android Kotlin Extension super calling
  • Este tipo tiene un constructor y debe ser inicializado aquí - Kotlin
  • Extensiones de Kotlin / properties sintéticas: mismo object en múltiples invocaciones de Fragment.onViewCreated ()
  • ¿Cómo conseguir ARTE ALBUM de una canción de su path en kotlin?
  • ¿Cuál es la forma correcta de declarar el tipo de variable en Android con Kotlin?
  • Extensiones en Kotlin