Primeiro criaremos uma ListActivity, essa é a parte fácil, vamos criar um novo projeto, e ele vai criar automaticamente a Activity base, nela vamos alterar a linha "extends Activity" para "extends ListActivity", agora precisamos alterar o layout, abra o main.xml, e adicione um ListView, para funcionar corretamente o ListView da ListActivity tem que ter a propriedade (android:id="@android:id/list").
public class NossaLista extends ListActivity {
}
Pronto, temos nossa ListActivity, agora como podemos populá-la? Isso é bem simples, primeiro crie uma variável do tipo SQLiteDatabase, essa é a nossa conexão com o banco de dados, agora vamos abri-la com o comando (openOrCreateDatabase())
public class NossaLista extends ListActivity {
private SQLiteDatabase database;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
database = openOrCreateDatabase("Data.db", SQLiteDatabase.CREATE_IF_NECESSARY,
null);
}
}
Agora, temos que criar o SQL que irá criar a tabela com a qual iremos trabalhar, lembrando que para funcionar com o CursorAdapter você SEMPRE irá precisar do campo "_id" na sua tabela.
public class NossaLista extends ListActivity {
private SQLiteDatabase database;
private final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS tabela ( " +
"_id INTEGER, " +
"descricao TEXT);";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
database = openOrCreateDatabase("Data.db", SQLiteDatabase.CREATE_IF_NECESSARY,
null);
database.execSQL(CREATE_TABLE);
}
}
Pronto, já temos nossa tabela criada, agora vamos criar nosso cursor e nosso adapter.
public class NossaLista extends ListActivity {
private SQLiteDatabase database;
private Cursor cursor;
private SimpleCursorAdapter adapter;
private final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS tabela ( " +
"_id INTEGER AUTOINCREMENT, " +
"descricao TEXT);";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
database = openOrCreateDatabase("Data.db", SQLiteDatabase.CREATE_IF_NECESSARY,
null);
database.execSQL(CREATE_TABLE);
database.execSQL("insert into tabela (descricao) values ('teste1');");
database.execSQL("insert into tabela (descricao) values ('teste2');");
cursor = data.query("tabela", new String[] {"_id", "descricao"}, null, null, null, null, null);
adapter = new SimpleCursorAdapter(this, R.layout.itens, cursor,
new String[] {"descricao", "_id"}, new int[] {R.id.textView1});
setListAdapter(adapter);
}
}
Pronto, agora está pronta nossa ListActivity trabalhando com SQLite. Lembrando que temos que criar um layout chamado itens.xml, com um textView com o id textView1 para funcionar normalmente. Reparem que troquei a ordem das colunas, isso é porque a ordem das colunas na criação do adapter mostra aonde vai "bindar" o campo, se trocassemos ao invés de aparecer a coluna "descricao" no textView iria aparecer a coluna "_id"