O SQLite já faz parte do Android por definição, então já está disponível para qualquer desenvolvimento.
É possível inclusive acessar o arquivo .db a partir do emulador da SDK do Android, modificando o mesmo com qualquer programa que leia este tipo de arquivo, até com a extensão do firefox que comentei no outro artigo.
Para encontrar este arquivo, utilizando o eclipse, altere para a perspective Dalvik Debug Monitor Server (DDMS) e navegar para Data > Data > [Aplicação] > DataBases > [nome da Base], conforme print:
É muito prático trabalhar diretamente com a base, que pode ser transferida diretamente para o emulador depois de alterada.
Agora, seguindo na implementação do Android, a API oferece uma classe chamada SQLiteOpenHelper, que deve ser extendida e representa uma base de dados SQLite. No construtor é informado o nome da base sendo criada e a versão atual (que deve ser incrementada quando o app for atualizado), além de uma customização do cursor utilizado pelo banco (caso você tenha implementado uma).
public class DataBaseHelper extends SQLiteOpenHelper {
public DataBaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
}
Outros métodos importantes são o onCreate e o onUpgrade, que contém respectivamente os scripts de criação e de atualização da estrutura do banco.
//Executa as rotinas de criação das tabelas do banco
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE A");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//Executar scripts que devem ser rodados quando o banco sofre alteração numa atualização
}
Quando esta classe estiver implementada o banco já poderá ser utilizado. Utilizando o trecho abaixo é possível criar um objeto do tipo SQLiteDatabase, que oferece acesso às tabelas, oferecendo métodos para realizar CRUD.
SQLiteDatabase db = new DataBaseHelper(context).getReadableDatabase();
db.rawQuery("SELECT * FROM TABLE", null);
As consultas retornam cursores, que provavelmente não são novidade para quem já mexeu com outras bases de dados.
No contexto do lhama, os meus progressos foram:
-Adaptar a base de dados para o SQLite
-Preparar uma carga de exemplo para testes
-Integrar as consultas com as Views do Android para que os dados sejam manipulados.
A última parte consumiu a maior parte do meu tempo, especialmente na integração dos cursores do banco de dados com a ExpandableList do Android. O print abaixo já mostra a lista com dados carregados a partir do banco, já atualizando as presenças das aulas cadastradas quando o checkbox é alterado. Foi desenvolvido numa aplicação a parte para focar o meu trabalho nesta atividade.
Me parece que vocês estão indo para um lado diferente da idéia original.
ResponderExcluirIsso vai complicar mais ainda o projeto pois vai exigir sincronização de dados.