Referente ao curso
Android com Kotlin: personalize o seu app
,
no capítulo
Finalizando o projeto
e atividade
Desafio: Tela de detalhes
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
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.