Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Passando parametros entre activity

Olá, eu entendi que precisa ter a URL na activity para carregar a imagem na lista, mas fiquei com uma dúvida, só dá pra resolver desse jeito com High Order function, a resolução é simples, mas desde que você já conheça a técnica, se eu não entendesse de High Order Function no Kotlin (eu vi nas aulas de Kotlin, mas não pensei nessa solução) não tem outro jeito de resolver?

A classe utilizada na explicação:

class FormularioImagemDialog(private val context: Context) {

    fun mostra(
        urlPadrao: String? = null,
        quandoImagemCarragada: (imagem: String) -> Unit
    )  {
        FormularioImagemBinding
            .inflate(LayoutInflater.from(context)).apply {

                urlPadrao?.let {
                    formularioImagemImageview.tentaCarregarImagem(it)
                    formularioImagemUrl.setText(it)
                }

                formularioImagemBotaoCarregar.setOnClickListener {
                    val url = formularioImagemUrl.text.toString()
                    formularioImagemImageview.tentaCarregarImagem(url)
                }

                AlertDialog.Builder(context)
                    .setView(root)
                    .setPositiveButton("Confirmar") { _, _ ->
                        val url = formularioImagemUrl.text.toString()
                        quandoImagemCarragada(url)
                    }
                    .setNegativeButton("Cancelar") { _, _ ->

                    }
                    .show()
            }
    }

}
1 resposta
solução!

Olá Gisele, tudo bem?

Na verdade, a técnica de High Order Function não é a única maneira de resolver o problema de carregar uma imagem a partir de uma URL. Existem outras formas de fazer isso, como utilizar bibliotecas externas, por exemplo.

Porém, a utilização de High Order Function é uma técnica bastante útil em Kotlin, pois permite que sejam passadas funções como parâmetros de outras funções, o que pode tornar o código mais genérico e reutilizável.

No caso específico do código do curso, a utilização de High Order Function permite que a função quandoImagemCarragada seja chamada apenas quando a imagem for carregada com sucesso, e não antes disso. Isso pode ser útil em alguns casos, como quando é necessário aguardar o carregamento completo da imagem antes de realizar outras operações.

Em resumo, essa é uma de diversas formas de resolver o problema, se pesquisar outras bibliotecas de carregamento de imagem como Glide ou Picasso, elas terão outras formas de resolver este mesmo problema.

Qualquer coisa estarei à disposição :)