Olá a todos, boa tarde.
Estou tentando exibir a lista de alunos cadastrados, mas apesar de não acusar erro no insert na camada DAO, ele não exibe os alunos?
Como posso depurar melhor esse comportamento?
Segue abaixo meu código fonte:
FormulárioActivity.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
import [meu-package].agenda2.dao.AlunoDAO;
import [meu-package].agenda2.modelo.Aluno;
import static [meu-package].agenda2.R.*;
public class FormularioActivity extends AppCompatActivity {
private FormularioHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layout.activity_formulario);
this.helper = new FormularioHelper(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_formulario, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case id.menu_formulario_ok:
Aluno aluno = helper.getAluno();
AlunoDAO dao = new AlunoDAO(this);
dao.insere(aluno);
dao.close();
Toast.makeText(FormularioActivity.this, "Aluno "+ aluno.getNome() +" salvo em nome de jesus amém!", Toast.LENGTH_SHORT ).show();
finish();
break;
}
return super.onOptionsItemSelected(item);
}
}
AlunoDAO.java
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
import [meu-package].agenda2.modelo.Aluno;
public class AlunoDAO extends SQLiteOpenHelper {
public AlunoDAO(Context context) {
super(context, "agenda2", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE alunos (id integer primary key, nome varchar not null, endereco varchar not null, telefone varchar not null, site varchar not null, nota real);";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS alunos;";
db.execSQL(sql);
onCreate(db);
}
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() {
List<Aluno> alunos = new ArrayList<Aluno>();
String sql = "Select * FROM alunos;";
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.rawQuery(sql, null);
Aluno aluno = new Aluno();
while(!cursor.moveToNext()) {
aluno.setId(cursor.getLong(cursor.getColumnIndex("id")));
aluno.setNome(cursor.getString(cursor.getColumnIndex("nome")));
aluno.setTelefone(cursor.getString(cursor.getColumnIndex("telefone")));
aluno.setEndereco(cursor.getString(cursor.getColumnIndex("endereco")));
aluno.setSite(cursor.getString(cursor.getColumnIndex("site")));
aluno.setNota(cursor.getDouble(cursor.getColumnIndex("nota")));
alunos.add(aluno);
}
cursor.close();
return alunos;
}
}