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);
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();
}
}
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 ..

Ai tu ve qual se encaixa melhor no teu codigo. O importante é que fique claro e de fácil manutenção.