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

[Sugestão] Método getParcelableExtra() deprecated

Bom dia a todos Ao replicar o código desse desafio, percebi que o método getParcelableExtra() estava deprecated e ganhou uma versão nova versão. Jeito antigo:

class DetalhesProdutoActivity : AppCompatActivity() {

//outros métodos e properties ocultados

    private fun tentaCarregarProduto() {
        intent.getParcelableExtra<Produto>(CHAVE_PRODUTO)?.let { produtoCarregado ->
            preencheCampos(produtoCarregado)
        } ?: finish()
    }

Agora para fazer o método novo, eu conferi esse fórum. Detalhe: como o getParcelableExtra() novo só funciona na versão igual ou acima do compileSdkVersion 33, precisamos adicionar um if que verifica a versão do compilador. Fica desse jeito:

class DetalhesProdutoActivity : AppCompatActivity() {

//outros métodos e properties ocultados

    private fun tentaCarregarProduto() {
    //verificação de versão do compilador do SDK
        val userData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
        //método novo para os SDK mais novos
            intent.getParcelableExtra(CHAVE_PRODUTO,Produto::class.java)
        } else{
        //método deprecated  para os SDK mais antigos
            intent.getParcelableExtra<Produto>(CHAVE_PRODUTO)
        }
        userData?.let { produtoCarregado ->
            preencheCampos(produtoCarregado)
        }?: finish()
    }

O código funcionou para mim desse jeito

Se tiver uma sugestão de melhoria ou correção (tanto no código, quanto na explicação), pode falar nos comentários

1 resposta
solução!

Oi Murilo, tudo bem?

Muito obrigada por compartilhar sua descoberta e solução para o problema com o método getParcelableExtra() deprecated. É sempre importante mantermos nossos códigos atualizados e funcionando corretamente.

Sua solução parece estar correta e bem explicada. É interessante ver como você verificou a versão do compilador do SDK antes de escolher qual método utilizar. Isso garante que o código funcionará corretamente em diferentes versões do Android.

Não tenho nenhuma sugestão de melhoria ou correção para o seu código. Apenas gostaria de agradecer por compartilhar sua solução conosco e ajudar a comunidade a aprender mais sobre programação para Android.

Um abraço e bons estudos.