Galera estou iniciando agora no Android, fui fazer um teste de inserção de dados no banco porém os dados não são inseridos, posso tá comendo mosca em algum momento, segue abaixo o código.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_alunos);
classe responsável por apresentar os alunos na list
AlunoDAO dao = new AlunoDAO(this);
List<Aluno> alunos = dao.buscaAlunos();
dao.close();
ListView listaAlunos = ( ListView) findViewById(R.id.lista_alunos);
ArrayAdapter<Aluno> adapter = new ArrayAdapter<Aluno>(this,android.R.layout.simple_list_item_1,alunos);
listaAlunos.setAdapter(adapter);
Button novoAluno = (Button) findViewById(R.id.novo_aluno);
Classe responsável por inserir e buscar os alunos no banco
public AlunoDAO(Context context) {
super(context, "Agenda",null, 1);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String sql = "CREATE TABLE Alunos (_id INTEGER PRIMARY KEY, nome TEXT NOT NULL, endereco TEXT, site TEXT, nota REAL);";
sqLiteDatabase.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS Alunos";
sqLiteDatabase.execSQL(sql);
onCreate(sqLiteDatabase);
}
public void insere(Aluno aluno) {
SQLiteDatabase db = getWritableDatabase();
ContentValues dados = new ContentValues();
dados.put("nome",aluno.getNome());
dados.put("endereco",aluno.getEndereco());
dados.put("telefone",aluno.getTelefone());
dados.put("site",aluno.getSite());
dados.put("nota",aluno.getNota());
db.insert("Alunos",null,dados);
}
public List<Aluno> buscaAlunos() {
String sql = "SELECT * FROM Alunos;";
SQLiteDatabase db = getReadableDatabase();//getReadableDatabase
Cursor c = db.rawQuery(sql,null);
List<Aluno> alunos = new ArrayList<Aluno>();
while(c.moveToNext()){
Aluno a = new Aluno();
a.setId(c.getLong(c.getColumnIndex("id")));
a.setNome(c.getString(c.getColumnIndex("nome")));
a.setEndereco(c.getString(c.getColumnIndex("endereco")));
a.setTelefone(c.getString(c.getColumnIndex("telefone")));
a.setSite(c.getString(c.getColumnIndex("site")));
a.setNota(c.getDouble(c.getColumnIndex("nota")));
alunos.add(a);
}
c.close();
return alunos;
}
Nenhum erro é apontado, utilizando o debug sempre visualizo que o array list retornado pela busca alunos está vazia, o
db.insert("Alunos", null, dados);
vejo pelo debug que chega os dados preenchidos.
Gostaria que me desse uma luz para este problema.
Desde já agradeço a colaboração de todos.