Professor, estou fazendo este curso porém implementando-o em kotlin, pois fiz os demais de kotlin e estou testando o que aprendi nos 3 anteriores de kotlin, digo o curso sobre transações de despesas e receitas. Percebi que ao implementar o recycler view em kotlin, não foi necessário implementar o adapter como o senhor faz no método onResume(), obtive o mesmo comportamento sem a necessidade de ter que atualizar a lista vinda do DAO. Já quando tentei utilizar a mesma abordagem sua de limpar a lista e adiconar todos os itens novamente, não foi possível devido eu ter utlizado List<> ao invés de MutableList<>. Mesmo assim fiz um cast para MutableList para tentar utlizar o clear() e o addAll(). Ainda assim o comportamente foi diferente do seu, sempre era criado mais viewHolders quando eu inseria mais notas ou saia do app e voltava, parece que ele fica sempre criando ViewHolders desnecessários. O senhor teria alguma dica de implementação e comportamento no kotlin para essa abordagem? Segue minha classe ListaNotasActivity:
class ListaNotasActivity : AppCompatActivity() {
private val dao = NotaDAO()
private lateinit var todasNotas: List<Nota>
private lateinit var adapter: ListaNotasAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_lista_notas)
todasNotas = notasDeExemplo()
configuraRecyclerView(todasNotas)
lista_notas_insere_nota.setOnClickListener {
val iniciaFormularioNota = Intent(this, FormularioNotaActivity::class.java)
startActivity(iniciaFormularioNota)
}
}
private fun notasDeExemplo(): List<Nota> {
dao.insere(Nota("Primeira notas", "Descrição pequena"), Nota("Segunda nota", "Segunda descrição é bem maior que a da primeira nota"))
return dao.notas
}
private fun configuraRecyclerView(notas: List<Nota>) {
configuraAdapter(notas)
}
private fun configuraAdapter(notas: List<Nota>) {
adapter = ListaNotasAdapter(this, notas)
lista_notas_recyclerview.adapter = adapter
}
}