Tentei fazer assim:
public List<Aluno> listaAlunos() {
String sql = "SELECT * FROM Alunos;";
SQLiteDatabase db = getWritableDatabase();
Cursor c = db.rawQuery(sql,null);
List<Aluno> lista = new ArrayList<Aluno>();
while (c.moveToNext()){
lista.add(new Aluno( //<<<<<<< NÃO FUNCIONOU
c.getLong(c.getColumnIndex("id")),
c.getString(c.getColumnIndex("nome")),
c.getString(c.getColumnIndex("endereco")),
c.getString(c.getColumnIndex("telefone")),
c.getString(c.getColumnIndex("email")),
c.getDouble(c.getColumnIndex("nota"))
));
}
c.close();
return lista;
}
E não funciona, mas assim:
public List<Aluno> listaAlunos() {
String sql = "SELECT * FROM Alunos;";
SQLiteDatabase db = getWritableDatabase();
Cursor c = db.rawQuery(sql,null);
List<Aluno> lista = new ArrayList<Aluno>();
while (c.moveToNext()){
Aluno aluno = new Aluno(
c.getLong(c.getColumnIndex("id")),
c.getString(c.getColumnIndex("nome")),
c.getString(c.getColumnIndex("endereco")),
c.getString(c.getColumnIndex("telefone")),
c.getString(c.getColumnIndex("email")),
c.getDouble(c.getColumnIndex("nota"))
);
lista.add(aluno); // <<<<< FUNCIONOU
}
c.close();
return lista;
}
Funciona! Qual a diferença?
O new Aluno()
não retorna um objeto Aluno?