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

Exercício 12 (desafio)

Esse exercício pedia que fizesse o AlunoDAO deixar de ser um SQLiteOpenHelper para TER um SQLiteOpenHelper. Então criei uma classe q extendia o SQLiteOpenHelper e coloquei como atributo da classe AlunoDAO, chamei de BancoHelper. E fiz a classe AlunoDAO criar uma instancia desse SQLiteOpenHelper. O certo a se fazer, segundo o exercício, é passar como atributo no construtor do AlunoDAO esse SQLiteOpenHelper. E de fato o que acontece quando crio tudo dentro do AlunoDAO, passando no construtor apenas o Context, é que eu recebo um NullPointerException do ListaAlunosActivity (maldito). Por que eu preciso passar como atributo o DBHelper? Por que eu não posso passar um Context no construtor do AlunoDAO e ele criar um objeto do DBHelper? Eu queria fazer assim para poder centralizar o uso desse DBHelper apenas aos DAOs, não há como fazer isso? Há algum problema nessa abordagem?

5 respostas

Não entendi muito bem, o que exatamente você está passando como parâmetro?

Eu passo como parâmetro do construtor da AlunoDAO um context que é a Activity onde está sendo chamado. Este context é repassado para o DAO (que extende SQLiteOpenHelper).

Ricardo, o que você fez é exatamente o que estou tentando fazer. Estou tentando passar o Context pelo construtor e, no AlunoDAO criar uma instancia do SQLiteOpenHelper. Mas estou encontrando NullPointer. Minha dúvida era se algo impedia esse tipo de abordagem ou se meu raciocínio está certo, mas eu que devo ter esquecido de passar algum parâmetro. Vou revisar meu código. Obrigado.

Qualquer problema, posta o código aqui para discutirmos :D

solução!

Qualquer problema, posta o código aqui para discutirmos :D

Beleza. Obrigado.