Esse erro começou depois que tentei aplicar o desafio de criar uma Activity de detalhes após clicar em um produto da lista. já tentei de diversas formas, até baixei o código com o desafio já feito, fiz igual e mesmo assim o erro persiste.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Esse erro começou depois que tentei aplicar o desafio de criar uma Activity de detalhes após clicar em um produto da lista. já tentei de diversas formas, até baixei o código com o desafio já feito, fiz igual e mesmo assim o erro persiste.
activity detalhes:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imagem_activity_detalhes_produtos"
android:layout_width="0dp"
android:layout_height="200dp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintBottom_toTopOf="@id/titulo_activiry_detalhes_produtos"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@tools:sample/backgrounds/scenic" />
<TextView
android:id="@+id/valor_activiry_detalhes_produtos"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:layout_margin="16dp"
android:elevation="10dp"
android:textSize="24sp"
android:backgroundTint= "#f9f9f9"
android:background="@drawable/border"
android:textColor="@color/colorSecondary"
android:fontFamily="@font/montserrat_bold"
app:layout_constraintTop_toBottomOf="@id/imagem_activity_detalhes_produtos"
app:layout_constraintBottom_toTopOf="@id/titulo_activiry_detalhes_produtos"
app:layout_constraintStart_toStartOf="parent"
tools:text="R$ 1299,99"/>
<TextView
android:id="@+id/titulo_activiry_detalhes_produtos"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:paddingTop="10dp"
android:fontFamily="@font/montserrat_bold"
android:maxLines="4"
android:textSize="28sp"
app:layout_constraintBottom_toTopOf="@id/descricao_activiry_detalhes_produtos"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/imagem_activity_detalhes_produtos"
tools:text="@tools:sample/lorem/random" />
<TextView
android:id="@+id/descricao_activiry_detalhes_produtos"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/titulo_activiry_detalhes_produtos"
tools:text="@tools:sample/lorem/random" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>Activity detalhes - kotlin:
class DetalhesProdutosActivity : AppCompatActivity() {
private val binding by lazy {
ActivityDetalhesProdutosBinding.inflate(layoutInflater)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
tentaCarregarProduto()
}
private fun tentaCarregarProduto() {
intent.getParcelableExtra<Produto>(CHAVE_PRODUTO)?.let { produtoCarregado ->
preencherCampos(produtoCarregado)
} ?: finish()
}
private fun preencherCampos(produtoCarregado: Produto) {
with(binding) {
imagemActivityDetalhesProdutos.tentaCarregarImagem(produtoCarregado.imagem)
tituloActiviryDetalhesProdutos.text = produtoCarregado.nome
descricaoActiviryDetalhesProdutos.text = produtoCarregado.descricao
valorActiviryDetalhesProdutos.text = produtoCarregado.valor.formataMoedaReal()
}
}
}
Adapter:
class ListaProdutosAdapter(
private val context: Context,
produtos: List<Produto>,
var quandoClicaNoItem: (produto: Produto) -> Unit = {}
) : RecyclerView.Adapter<ListaProdutosAdapter.ViewHolder>() {
private val produtos = produtos.toMutableList()
inner class ViewHolder(private val binding: ProdutoItemBinding) :
RecyclerView.ViewHolder(binding.root) {
private lateinit var produto: Produto
init {
itemView.setOnClickListener{
if (::produto.isInitialized){
quandoClicaNoItem(produto)
}
}
}Constante:
const val CHAVE_PRODUTO = "produto"
extention bigdecimal:
fun BigDecimal.formataMoedaReal(): String {
val formatador: NumberFormat = NumberFormat
.getCurrencyInstance(Locale("pt", "br"))
return formatador.format(this)
}
app/build.gradle:
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'org.jetbrains.kotlin.android'
id 'kotlin-parcelize'
}


Olá, André!
Esse erro pode ocorrer por diferentes motivos, mas geralmente está relacionado a problemas na configuração do Gradle ou em alguma dependência do projeto.
Uma possível solução é verificar se todas as dependências estão corretamente configuradas no arquivo build.gradle. Certifique-se de que todas as versões das bibliotecas estão compatíveis e atualizadas.
Outra opção é limpar o cache do Gradle. Para fazer isso, você pode executar o comando "gradlew clean" no terminal, dentro do diretório do projeto.
Além disso, é importante verificar se todas as dependências necessárias foram adicionadas corretamente no arquivo build.gradle.
Espero ter ajudado e bons estudos!