Vous êtes sur la page 1sur 45

Persistncia de dados com SQLite

Professor

Walter Felipe

Ivonaldo Torres
2
Utilizao do Android para desenvolver uma aplicao que faz uso do SQL lite
Vamos ento comear com o desenvolvimento da aplicao, usando para isso a ferramenta de
desenvolvimento eclipse ou Android Studio.

1 Criar Projeto Criao de um novo projeto com o nome: Contatos File > New > Project

2 Criar uma nova classe com nome DbHelper Esta classe ser responsvel por criar a base de dados no
momento em que a aplicao iniciada (mtodo onCreate) e atualiz-la para novas verses(mtodo onUpgrade).

2.1 A classe DB expande a classe SQLiteOpenHelper, esta fornece os mtodos getReadableDatabase() e


getWriteableDatabase(), que permitem acessar base de dados SQLiteDatabase quer para ler quer para
escrever.
2.2 Adicionar os imports necessrios para a classe:

2.3 Adicionar as constantes necessrias:

2.4 Fazer @override das classes necessrias:


2.5 No final a classe ter um aspecto parecido com o seguinte:
2.5 Viso geral da Classe Contacto. Lembre de criar os mtodos gets e sets:
4- Criar nova classe DBAdapter que ser a classe base para trabalhar com SQLite. Esta ir permitir abrir,
fechar, fazer queries e atualizar a base de dados.

4.1 Criar nova classe DBAdapter

4.2 Adicionar os imports necessrios para a aplicao:

4.3 Adicionar os Atributos necessrios para a classe:

4.4 Declarar o construtor da classe que ir inicializar uma instncia da classe DbHelper.
Um Context um handle para o sistema, que fornece servios como resources, acesso a base de dados e
preferncias. O contexto da aplicao (application context) o repositrio central para a funcionalidade de todas
as aplicaes de nvel superior no Android. Usa-se este contexto quando queremos acessar as configuraes e
recursos compartilhados entre as vrias janelas (activities) da aplicao.

4.5 Criar mtodo para criar um novo contato na base de dados, este ir retornar um objecto Contacto.

Os cursores so apontadores de dados da base de dados ou seja, uma interface que permite o acesso
aos dados retornados pela query. O objecto ContentValues permite definir os valores a inserir.
4.6 Mtodo para eliminar um contacto:

4.7 Mtodo para devolver um Contacto passando como parmetro um cursor.

4.8 Mtodo para devolver todos os contactos da tabela:


4.9 Mtodo que devolve o contacto passando como parmetro o id do contacto pretendido:
Classe DBAdapter que a classe base do nosso tutorial para trabalhar com SQLite
5 vamos desenhar inicial que ir listar os contatos existentes na base de dados e ter um boto que
permitir adicionar um novo Contato.
5.1 Abrir o arquivo main.xml e alterar o layout para o seguinte:
6 Vamos criar um novo Layout com o nome: contacto_list_item onde iremos definir a forma como cada
item da lista ser mostrado.
7 Vamos agora alterar a classe ContactosActivity.java para listar os contatos existentes na base de dados.

ListAdapter permite mostrar vrias informaes em uma linha do ListView.


DBAdapter permite fazer operaes na base de dados.
8 Adicionar Novo contato Vamos agora permitir que na nossa aplicao possa adicionar contatos.

8.1 Acrescentar um layout com o nome novocontacto.xml


Cdigo do
layout:
9 Vamos agora acrescentar uma activity no arquivo AndroidManifest.xml
10 Alterar o arquivo ContactoActivity para passar para a memria NovoContacto.

10.1 Criar varivel para acessar a boto Novo Contacto:

Button btNovoContacto;

10.2 Criar a ligao entre boto e o elemento da interface, e adicionar a ao que ir fazer o boto, no mtodo
onCreate:

11- Acrescentar uma nova classe chamada NovoContacto e indicar que estende a classe Activity
11.1 Acrescentar o mtodo onCreate e alterar o parmetro do mtodo setContentView para indicar o novo
arquivo de layout novocontacto.xml como o layout da nova Activity.

11.2 Criar variveis para acessar aos elementos da interface Novo Contacto:

11.3 No evento onCreate criar a ligao entre as variveis e os elementos da interface:


11.4 Adicionar, no mtodo onCreate, a ao do boto tirar Foto:

11.5 Adicionar o mtodo onActivityResult, quando for tirada a fotografia apresentada a imagem no
controle imageView:

11.6 Adicionar uma instncia da classe DBAdapter

11.7 inicializar o datasource no mtodo onCreate


11.8 Alterar o mtodo onCreate e adicionar a ao do boto Adicionar:

11.9 Adicionar um mtodo adicional para retornar o bitmap da imageView:


12 Vamos agora alterar na classe ContactosActivity para que no final de adicionarmos o contato este j seja
apresentado na lista:

12.1 Vamos adicionar o mtodo onListItemClick, mtodo que chamado sempre que clicado um item da
lista:
12.2 Classe ContactosActivity. Os mtodos so mostrados na sequencia.
12.3 Classe ContactosActivity. Detalhe do mtodo onCreate
12.4 Classe ContactosActivity. Detalhe do mtodo onResume
12.5 Classe ContactosActivity. Detalhe do mtodo onListItemClick
13 criar a interface para ver os detalhes do contato.

13.1 Criar um novo arquivo com o nome detalhecontacto.xml e alterar o arquivo com o seguinte layout:
Observe a quebra nos slides pois o arquivo muito grande! Terminando o slide anterior, venha para esse!
Ao final do desenvolvimento da interface teremos o seguinte layout de tela desenvolvido!
14 De seguida vamos acrescentar a nova activity para mostrar os detalhes do contato:

15 Adicionar uma nova classe com nome DetalhesContacto, esta vai estender da classe Activity:

15.1 Acrescentar o mtodo onCreate e alterar o parmetro do mtodo setContentView para indicar o novo
arquivo de detalhecontacto.xml como o layout da nova Activity DetalhesContacto.

15.2 Criar variveis para aceder aos elementos da interface:


15.3 No evento onCreate criar a ligao entre as variveis da classe e os elementos da interface.

15.4 Adicionar um nova funo que ir colocar nos elementos da interface nos componentes de detalhe
do contato:
15.5 Chamar a funo carregaDetalhesContacto() na funo onCreate.
15.6 Adicionar funo onCreate a ao dos botes da interface:
15.7 Viso geral da classe ContactosDetalhes:
15.8 Viso geral da classe ContactosDetalhes:
15.9.1 Viso geral da classe ContactosDetalhes mtodo onCreate parte 1:
15.9.2 Viso geral da classe ContactosDetalhes mtodo onCreate parte 2 implementao do
btnEliminar:
Com isso, terminamos nossa aplicao para esse tutorial! Revise o cdigo e rode sua aplicao.
Temos um desafio nessa aplicao. Observem que a edio do cadastro no est funcionando! Vou conceder
1(um) ponto para quem deixar a parte de edio do cadastro funcional. Isso com a alterao de todos os dados,
inclusive a foto.