Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

124
Visualizações
Argumentos de NavDirections en orden incorrecto

Estoy usando el componente Android Jetpack Navigation y parece que requiere que pase los argumentos en el orden incorrecto.

Tengo dos fragmentos (fragment1 y fragment2). El fragmento 2 toma cuatro argumentos (bool, string, int, CustomParslableClass?). El IDE cree que ese es el orden correcto (y muestra los garabatos rojos con un mensaje "No coincide el tipo [...]" si no los tengo en ese orden). La aplicación solía compilarse bien con ese orden (hace un año, cuando trabajé por última vez en ella), pero hoy descargué todo y tuve que actualizar las dependencias para compilar.

Esta es la línea de código normal que el IDE cree que es correcta (solía funcionar):

 val direction = HomeViewPagerFragmentDirections.actionFragment1ToFragment2(false, "Favorites", 17, null)

Sin embargo, cuando construyo con ese orden, obtengo errores de compilación para cada argumento:

 e: filename.kt: (51, 106): The boolean literal does not conform to the expected type String e: filename.kt: (51, 112): Type mismatch: inferred type is String but Int was expected e: filename.kt: (51, 125): Type mismatch: inferred type is Int but PlaylistEntry? was expected e: filename.kt: (51, 136): Null can not be a value of a non-null type Boolean

Por el contrario, cuando reordeno los argumentos de la función así (arg2, arg3, arg4, arg1):

 val direction = HomeViewPagerFragmentDirections.actionFragment1ToFragment2("Favorites", 17, null, false)

funciona bien, pero el IDE muestra subrayados rojos debajo de cada argumento, ¡lo que indica que están en el orden incorrecto! ( Type mismatch. Required: Boolean, Found: String )


Tal vez importante:

  • arg1 (bool) tiene un valor predeterminado de false
  • arg2 (cadena) no tiene valor predeterminado
  • arg3 (int) no tiene valor predeterminado
  • arg4 (CustomParslableClass?) no tiene un valor predeterminado (pero es anulable)

Cuando cambio arg2 para que tenga un valor predeterminado, el IDE espera lo mismo, pero el orden que funciona para la compilación cambia a (arg3, arg4, arg1, arg2) .


Una simple limpieza y reconstrucción no ayudó. También intenté limpiar el proyecto, cerrar Android Studio y reiniciar, luego hacer una compilación. Incluso intenté eliminar la acción entre los dos fragmentos y volver a crear (construir entre tiempos). Todo fue en vano. Tenga en cuenta que cuando ejecuto la aplicación compilada, todo funciona como debería. Normalmente, eso estaría bien, ¡pero no creo que se suponga que el orden de los argumentos esté saltando de esa manera!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Con argumentos múltiples, debe configurar como a continuación

 val action = BlankFragmentDirections.actionBlankFragmentToSecondFragment() action.arg1 = 2 action.arg2 = 3 action.arg3 = "423" findNavController().navigate(action)
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda