Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Aula de Persistência com SQLite - erro na "ListaAlunoActivity"

Estou com problemas no meu código! Eu refiz as aulas de cadastro de aluno até a aula de persistência, porém o meu tema foi pra um hospital(e não alunos), mas a estrutura foi a mesma, mudando somente alguns nomes(de Aluno para Paciente, etc). E agora, se eu colocar este pedaço do código comentada, ele funciona, mas se eu deixa-la para execução, na hora de executar meu aplicativo, ele diz que o aplicativo fechou inesperadamente. Alguem pode me ajudar ? Segue o link do meu projeto-exercicio

Link para download: http://goo.gl/ktaf0D

Pedaço do código com problema na classe "ListaPacientesActivity: PacienteDBA dba = new PacienteDBA(this); List pacientee = dba.getLista();

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, pacientee); lista.setAdapter(adapter);

4 respostas

tive o mesmo problema como

Oi Wallace,

A dúvida já está com o instrutor. No entanto, ela não é trivial. Você inclusive anexou seu projeto inteiro. Ele precisa olhar tudo.

Assim que ele descobrir algo, te avisa.

Um abraço!

solução!

Dentro da classe PacienteDBA, no seu método getLista, você está retornando null:

public List<Paciente> getLista() {
    ArrayList<Paciente> pacientee = new ArrayList<Paciente>(); 

    String sql = "SELECT * FROM " + TABELA + ";";
    //executar na DATABASE
    //Cursor traz TODOS os elementos do banco de dados, independente da quantidade que h·
    Cursor c = getReadableDatabase().rawQuery(sql, null);

    while(c.moveToNext()){
        Paciente paciente = new Paciente();
        paciente.setId(c.getLong(c.getColumnIndex("id")));
        paciente.setNome(c.getString(c.getColumnIndex("nome")));
        paciente.setRg(c.getString(c.getColumnIndex("rg")));
        paciente.setTelefone(c.getString(c.getColumnIndex("telefone")));
        paciente.setEndereco(c.getString(c.getColumnIndex("endereco")));
        pacientee.add(paciente);            
    }        
    return null; // AQUI!
}

Então, como você passa esse null para o seu adapter, você está tomando um NullPointerException.

Para resolver isso, basta trocar:

return null;

Por:

return pacientee;

Abraço e bons estudos.

Ajudou muito!!! Estava com o mesmo problema =D