Olá pessoal, procurei e não achei, porisso abri este tópico … me desculpem caso eu tenha me enganado …
Venho recorrer à vc´s, diante da seguinte questão:
Minha classe Main (principal), possui o script e gera o banco sqlite pra mim no oncreate. Assim como chama um método da classe dao (materiaDao).
Primeiro segue o código da classe Main: (que roda bonitinha, e gera o banco sem problemas);
[code]public class Main extends Activity {
public static final String NOME_BANCO = "agenda";
SQLiteDatabase db;
List<Materia> materias = new ArrayList<Materia>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
CriaBanco();
MateriaDao materiaDao = new MateriaDao();
materias = materiaDao.listarMaterias();
if(materias.isEmpty()){
msg("materias vazias");
}else{
msg("possui materias");
}
}
public void CriaBanco(){
try{
db = openOrCreateDatabase(NOME_BANCO, MODE_PRIVATE, null);
String SQL = “CREATE TABLE IF NOT EXISTS materia
(idmateria
INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,” +
" descricao
VARCHAR(45) NULL ,professor
VARCHAR(45) NULL , nota
FLOAT NULL , faltas
INT NULL ," +
" status
VARCHAR(45) NULL);";
db.execSQL(SQL);
msg("Banco criado com sucesso!");
}catch(Exception erro){
msg("Banco não pode ser criado."+erro);
}finally{
db.close();
}
}
[/code]
E na classe MateriaDao, tenho o seguinte código, que me dá um nullPointer ao ter o método listarMaterias invocado (na verdade, me dá o nullPointer por naum consegue abrir o banco), e aí que está minha dificuldade:
public List<Materia> listarMaterias(){
db = openOrCreateDatabase(Main.NOME_BANCO, MODE_PRIVATE, null);
Antes que alguém fale: acima deixei só os códigos que interessam … ok ? (exemplo: ai em cima não tem return e etc … pois isso não importa no caso) …
Bom, será que alguém saberia me dizer o que possa estar errado ?
Sou muito grato desde já …
abraços …