Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Em Kotlin, DAO

Estou desenvolvendo o app em Kotlin... A lista da view funciona corretamente.. Os dados inserido funciona corretamente, testei com o Toast.. Os dados só não aparece na outra activity quando clica pra salvar.. Estou usando MutableList na classe DAO.. tem algum detalhe que não estou conseguindo resolver, alguém me ajuda?..

Fiz testes debug, e na função salva(), esta ok... Fiz o teste na função todos() e a lista retorna vazia

class AlunoDao {

    val alunos: MutableList<Aluno> = mutableListOf()

    fun todos(): MutableList<Aluno> {
        return alunos
    }

    fun salva(alunoExemplo: Aluno) {
        alunos.add(alunoExemplo)
    }
}
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val dao = AlunoDao()

        var listViewCreated = findViewById<ListView>(R.id.activity_lista_alunos)
        listViewCreated.adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, dao.todos())


    }
}
class FormAluno : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_form_aluno)

        val dao = AlunoDao()

        val nomeTextView = findViewById<EditText>(R.id.nome)
        val celTextView = findViewById<EditText>(R.id.cel)
        val emailTextView = findViewById<EditText>(R.id.email)

        val btnView = findViewById<Button>(R.id.btn_salvar)
        btnView.setOnClickListener {
            var nome: String = nomeTextView.text.toString()
            var cel: String = celTextView.text.toString()
            var email: String = emailTextView.text.toString()

            var alunoExemplo = Aluno( nome, cel, email)

            dao.salva(alunoExemplo)

            startActivity(Intent(this, MainActivity::class.java))
        }
    }
}
2 respostas
solução!

Opa Luciano, tudo bem?

O problema é que o MutableList alunos na classe AlunoDao não está sendo criado como um companion object

A implementação ficaria dessa forma:

class AlunoDao {


   companion object {
        val alunos: MutableList<Aluno> = mutableListOf()
   }

   // Resto do código da classe
}

Espero ter ajudado. Abraços

Ajudou sim brother!!! Tmj

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software