Ola Pessoal,Hoje vou mostrar como carregar um ListView com informacoes vindas do SqLite, esse exemplo utiliza parte do codigo utilizado no exemplo de Agenda.A seguir temos um print do projeto, para orientar onde devemos criar cada arquivo.Para facilitar no aprendizado todos os fontes apresentados seguem com comentarios, e abaixo segue todo o fonte utilizado.Arquivo main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/btnInserir" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Inserir registros" android:onClick="btnInserir_Click"/> <Button android:id="@+id/btnCarregar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Carregar registros" android:onClick="btnCarregar_Click" /> <ListView android:id="@+id/listView1" android:layout_width="fill_parent" android:layout_height="wrap_content" > </ListView></LinearLayout>Arquivo row.xml<?xml version="1.0" encoding="UTF-8"?><RelativeLayout android:layout_width="fill_parent" android:orientation="horizontal" android:id="@+id/rowLayout" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:id="@+id/tvNome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Nome" android:layout_alignParentLeft="true"/> <TextView android:id="@+id/tvEndereco" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_alignParentLeft="true" android:layout_below="@+id/tvNome" android:gravity="right" android:text="Endereco" /> <TextView android:id="@+id/tvTelefone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_alignParentLeft="true" android:layout_below="@+id/tvEndereco" android:text="Telefone" /></RelativeLayout>Arquivo BaseDAO.javapackage br.com.EscolaDeAndroid.ListSqlite;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;//Classe responsavel pela criacao do Banco de Dados e tabelaspublic class BaseDAO extends SQLiteOpenHelper { public static final String TBL_AGENDA = "agenda"; public static final String AGENDA_ID = "_id"; public static final String AGENDA_NOME = "nome"; public static final String AGENDA_ENDERECO = "endereco"; public static final String AGENDA_TELEFONE = "telefone"; private static final String DATABASE_NAME = "agenda.db"; private static final int DATABASE_VERSION = 1; //Estrutura da tabela Agenda (sql statement) private static final String CREATE_AGENDA = "create table " + TBL_AGENDA + "( " + AGENDA_ID + " integer primary key autoincrement, " + AGENDA_NOME + " text not null, " + AGENDA_ENDERECO + " text not null, " + AGENDA_TELEFONE + " text not null);"; public BaseDAO(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase database) { //Criacao da tabela database.execSQL(CREATE_AGENDA); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //Caso seja necessario mudar a estrutura da tabela //devera primeiro excluir a tabela e depois recria-la db.execSQL("DROP TABLE IF EXISTS " + TBL_AGENDA); onCreate(db); }}Arquivo ListSqliteActivity.javapackage br.com.EscolaDeAndroid.ListSqlite;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.widget.CursorAdapter;import android.widget.ListView;import android.widget.SimpleCursorAdapter;import android.widget.Toast;public class ListSqliteActivity extends Activity { private SQLiteDatabase database; private CursorAdapter dataSource; //Atencao: e necessario inserir o PK (chave primaria _id) como ultimo campo private static final String campos[] = {"nome", "endereco", "telefone", "_id"}; ListView listView; BaseDAO helper; /** Chamado quando a Activity e exeutada pela primeira vez. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView) findViewById(R.id.listView1); //cria instancia da classe BaseDAO, responsavel pela criacao do Banco de Dados helper = new BaseDAO(this); //executa rotinas internas para abrir/utilizar o banco de dados database = helper.getWritableDatabase(); } public void btnInserir_Click(View v){ //insere dados no banco de dados database.execSQL("INSERT INTO agenda (nome, endereco, telefone) VALUES " + "('Escola de Android', 'R: Joao Figueiredo, 101', '(99)9999-9999')"); database.execSQL("INSERT INTO agenda (nome, endereco, telefone) VALUES " + "('Projeto Teste', 'Av. Brasil, 500', '(12)3456-78901')"); Toast.makeText(this, "Registros inseridos com sucesso", Toast.LENGTH_SHORT).show(); } public void btnCarregar_Click(View v){ //executa consulta geral de todos os registros cadastrados no banco de dados Cursor contatos = database.query("agenda", campos, null, null, null, null, null); if (contatos.getCount() > 0){ //cria cursor que sera exibido na tela, nele serao exibidos //todos os contatos cadastrados dataSource = new SimpleCursorAdapter(this, R.layout.row, contatos, campos, new int[] { R.id.tvNome, R.id.tvEndereco , R.id.tvTelefone }); //relaciona o dataSource ao proprio listview listView.setAdapter(dataSource); }else{ Toast.makeText(this, "Nenhum registro encontrado",