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

Aula 5 - Persistência

em meu projeto esta acontecendo um erro quando tenta ler o banco de dados... criei um log e ele não consegue chegar em: Passou aqui ... - 4

Abaixo apresento a minha ListaAlunosActivity e o arquivo de Log

Fico no aguardo de alguma ajuda ???

``` package br.com.caelum.cadastro;

import java.util.List;

import com.example.cadastrocaelum.R;

import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.ArrayAdapter; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.Toast; import br.com.caelum.cadastro.dao.AlunoDAO; import br.com.caelum.cadastro.modelo.Aluno;

public class ListaAlunosActivity extends Activity {

//public class ListaAlunosActivity extends ActionBarActivity {

private ListView lista;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(com.example.cadastrocaelum.R.layout.listagem_alunos);

/* lista é uma instância do objeto VIEW */

lista = (ListView) findViewById(R.id.lista);

//final String[] alunos = {"Fábio","Maria","Ana","João","Roberto"}; /* alunos é um array do tipo STRING que neste caso, contém nomes de alunos /

AlunoDAO dao = new AlunoDAO(getApplicationContext()); // ou this //AlunoDAO dao = new AlunoDAO(this); // ou this

Log.i("dbTest","Passou aqui ... - 1");

List alunos = dao.getListaDeAlunos();

/* adapter é um especialista que faz uma especie de conecção entre dados JAVA e XML neste caso, permitindo transportar os nomes dos alunos que esta no array alunos para o VIEW */

//ArrayAdapter adapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, alunos);

ArrayAdapter adapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, alunos);

String dado = "Passou aqui ... - 2 " + adapter.toString(); Log.i("dbTest", dado);

/* O adaptador mais simples de usar é chamado de ArrayAdapter porque o adaptador converte um ArrayList de objetos em View transportando assim itens carregados em um array para o ListView recipiente. */

Log.i("dbTest","Passou aqui ... - 3");

lista.setAdapter(adapter); / http://www.vogella.com/tutorials/AndroidListView/article.html /

Log.i("dbTest","Passou aqui ... - 4");

----------------------------------------- veja o Log

10-24 11:14:47.018: D/dalvikvm(3139): GC_FOR_ALLOC freed 48K, 4% free 3141K/3268K, paused 35ms, total 37ms 10-24 11:14:47.028: I/dalvikvm-heap(3139): Grow heap (frag case) to 4.212MB for 1127536-byte allocation 10-24 11:14:47.118: D/dalvikvm(3139): GC_FOR_ALLOC freed 2K, 4% free 4240K/4372K, paused 83ms, total 83ms 10-24 11:14:47.248: I/dbTest(3139): Passou aqui ... - 1 10-24 11:14:47.288: I/dbTest(3139): Passou aqui ... - 2 android.widget.ArrayAdapter@b1d62bc8 10-24 11:14:47.288: I/dbTest(3139): Passou aqui ... - 3 10-24 11:14:47.288: D/AndroidRuntime(3139): Shutting down VM 10-24 11:14:47.288: W/dalvikvm(3139): threadid=1: thread exiting with uncaught exception (group=0xb1a92ba8) 10-24 11:14:47.308: E/AndroidRuntime(3139): FATAL EXCEPTION: main 10-24 11:14:47.308: E/AndroidRuntime(3139): Process: com.example.cadastrocaelum, PID: 3139 10-24 11:14:47.308: E/AndroidRuntime(3139): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.cadastrocaelum/br.com.caelum.cadastro.ListaAlunosActivity}: java.lang.NullPointerException 10-24 11:14:47.308: E/AndroidRuntime(3139): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)

2 respostas
solução!

revisei o código, e estava retornando um null...

Alias, observei que o retorno deveria ser um aluno ou seja, o objeto carregado.

Pronto, esta funcionando! e o melhor, eu consegui encontrar debugar e concertar.

Fica a dica, é sempre bom revisar seu código.

Legal Fabio, como você solucionou seu problema vou só marcar a dúvida como resolvida, ok?

Abraço!