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