1
resposta

Implementação do listener fora dos parâmetros da função setPositiveButton

Ao implementar o listener da função citada o Android Studio deu a dica para implementá-lo fora da função. Porque o AS deu essa dica e como apesar da implementação está fora dos parâmetros da função o código ainda funciona? Ele ficou assim.

                .setPositiveButton("Adicionar") { dialog, which ->
                    val valorEmTexto = viewCriada
                        .form_transacao_valor.text.toString()
                    val dataEmTexto = viewCriada
                        .form_transacao_data.text.toString()
                    val categoriaEmTexto = viewCriada
                        .form_transacao_categoria.selectedItem.toString()

                    val valor = BigDecimal(valorEmTexto)

                    val formatoBrasileiroDeData = SimpleDateFormat("dd/MM/yyyy")
                    val dataConvertida = formatoBrasileiroDeData.parse(dataEmTexto)
                    val data = Calendar.getInstance()
                    data.time = dataConvertida

                    val transacaoCriada = Transacao(
                        tipo = Tipo.RECEITA,
                        valor = valor,
                        categoria = categoriaEmTexto,
                        data = data
                    )

                    atualizaTransacoes(transacaoCriada)
                    lista_transacoes_adiciona_menu.close(true)
                }
1 resposta

Fala Edilson, tudo bem ?

Isso que tu fez se chama SAM, como isso funciona?

Geralmente listeners/callbacks são a última coisa que passamos numa função, e essas interfaces tem apenas 1 método, com isso o kotlin propõe ao desenvolvedor esconder toda a sujeira de criação de classe anônima e deixa apenas a parte importante, que é corpo da função que será executada.