4
respostas

Não mostra os dados do banco de dados na lista

Eu terminei a aula Buscando Aluno no banco, mas os dados do formulario que eu salvo não aparece na lista. Tentei reiniciar o aplicativo conforme mostrado na aula mas não apareceu. Não Aparece nenhum erro... Segue as imagens: https://1drv.ms/f/s!Ar8gcB6IdrJ-rxJYdrKcdcpYlmxu

Não aparece nenhum erro só fica em branco

4 respostas

Oi Alan, tudo bem ?

Mostra para gente seu DAO, talvez tenha algum problema nele que ainda não viu

Professor está ai as imagens https://1drv.ms/f/s!Ar8gcB6IdrJ-rzEdfibljhKxtdkF

Desculpe a demora

Alan,

Receio que pela sua busca estar sendo feita no onCreate, ao voltar para tela, que já foi criada, não ocorre nada, mas se você entrar novamente no aplicativo ele vai gerar uma nova activity e assim sua lista atualizada.

Para corrigir isso, colocamos a busca dentro do onResume, já que é o momento que o usuário está tendo acesso direto na tela.

Esteou tendo o mesmo problema, podem me ajudar?

package br.com.alura.agenda.dao;

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 br.com.alura.agenda.FormularioActivity; import br.com.alura.agenda.modelo.Aluno;

/* Created by julio.maggieri on 24/01/2018. */

public class AlunoDAO extends SQLiteOpenHelper { public AlunoDAO(Context context) { super(context, "Agenda", null, 1); }

@Override public void onCreate (SQLiteDatabase db) { String sql = "CREATE TABLE Alunos (id INTEGER PRIMARY KEY, nome TEXT NOT NULL, endereco TEXT, telefone TEXT, site TEXT, nota REAL);"; }

@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 buscaAlunos() { String sql = "SELECT * FROM Alunos;"; SQLiteDatabase db = getReadableDatabase(); Cursor c = db.rawQuery(sql, null);

List alunos = new ArrayList(); while (c.moveToNext()) { Aluno aluno = new Aluno(); aluno.setId(c.getLong(c.getColumnIndex("id"))); aluno.setNome(c.getString(c.getColumnIndex("nome"))); aluno.setEndereco(c.getString(c.getColumnIndex("endereco"))); aluno.setTelefone(c.getString(c.getColumnIndex("telefone"))); aluno.setSite(c.getString(c.getColumnIndex("site"))); aluno.setNota(c.getDouble(c.getColumnIndex("nota")));

alunos.add(aluno);

} c.close();

return alunos;

} }