90
Capítulo 04: Persistência com SQLite

Capítulo 04 - Persistência de dados com SQLite

Embed Size (px)

DESCRIPTION

Neste capítulo apresentamos estratégias para persistência de dados no Android. Itens discutidos: 1. Arquitetura MVC Mobile 2. Implementação do padrão de projeto View Helper 3. O Padrão de Projetos DAO e a classe SQLiteOpenHelper 4. Controle de versões de banco de dados 5. Mapeamento Objeto Relacional em Android

Citation preview

Page 1: Capítulo 04 - Persistência de dados com SQLite

Capítulo 04: Persistência com SQLite

Page 2: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

Instrutor

● Programador desde 2000

● Aluno de doutorado

● Mestre em informática pelo ICOMP/UFAM

● Especialista em aplicações WEB – FUCAPI

[email protected]

● sites.google.com/site/marciopalheta

Page 3: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

3/90

Agenda

● MVC em Android

● Criação da camada de modelo - entidade Aluno

● Padrão de Projeto – View Helper

● Padrão de Projeto – Data Access Object (DAO)

● CRUD (Create, Read, Update, Delete)

Page 4: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

4/90

Model View Controller - MVC

MODEL

CONTROLLER

Activities (.java)

DAO(.java)Entidades(.java)

VIEW

Layouts (.xml)

Page 5: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

5/90

Model View Controller - MVC

MODELVIEW

Layouts (.xml)

CONTROLLER

Activities (.java)

DAO(.java)Entidades(.java)

Chamadade metodo()

Evento

modelo.getEstado()

Page 6: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

6/90

Model View Controller - MVC

MODEL SQLiteVIEW

Layouts (.xml)

CONTROLLER

Activities (.java)

DAO(.java)Entidades(.java)

Chamadade metodo()

Evento

modelo.getEstado()

Page 7: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

7/90

Model View Controller - MVC

MODEL SQLiteVIEW

Layouts (.xml)

CONTROLLER

Activities (.java)

DAO(.java)Entidades(.java)

Chamadade metodo()

Evento

Exibir tela

modelo.getEstado()

Page 8: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

8/90

Model View Controller - MVC

MODEL SQLiteVIEW

Layouts (.xml)

CONTROLLER

Activities (.java)

DAO(.java)Entidades(.java)

Chamadade metodo()

Evento

Exibir tela

modelo.getEstado()

Entrada dedados

Page 9: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

9/90

Model View Controller - MVC

MODEL SQLiteVIEW

Layouts (.xml)

CONTROLLER

Activities (.java)

DAO(.java)Entidades(.java)

Chamadade metodo()

Evento

Exibir tela

modelo.getEstado()

modelo.atualizarEstado()

Entrada dedados

Page 10: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

10/90

Model View Controller - MVC

MODEL SQLiteVIEW

Layouts (.xml)

CONTROLLER

Activities (.java)

DAO(.java)Entidades(.java)

Chamadade metodo()

Evento

Exibir tela

modelo.getEstado()

modelo.atualizarEstado()

Entrada dedados

Notificação demudanças

Page 11: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

11/90

Model View Controller - MVC

MODEL SQLiteVIEW

Layouts (.xml)

CONTROLLER

Activities (.java)

DAO(.java)Entidades(.java)

Chamadade metodo()

Evento

Exibir tela

modelo.getEstado()

modelo.atualizarEstado()

Entrada dedados

Notificação demudanças

tela.atualizarVisao()

Page 12: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

12/90

Persistência com SQLite

● A tela de Listagem da nossa App permite o cadastro do nome dos alunos e os exibe em uma ListView

● Contudo, temos alguns problemas nessa abordagem:

– Os dados são perdidos quando a App é destruída

– Precisamos de outros dados para o Aluno● Como resposta, poderíamos:

– Persistir os dados em um Bando de Dados

– Usar a tela de Formulário para cadastro e alteração de dados do Aluno

Page 13: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

13/90

Exercício 01: Crie o JavaBean Aluno

Page 14: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

14/90

Exercício 01: implemente o bean Aluno

Page 15: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

15/90

Pensando na arquitetura do sistema

● Agora, no método onCreate() da nossa Activity, precisamos povoar um objeto Aluno com dados da tela:

Page 16: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

16/90

Pensando na arquitetura do sistema

● Agora, no método onCreate() da nossa Activity, precisamos povoar um objeto Aluno com dados da tela:Associa campos da tela

A referências de controle

Page 17: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

17/90

Pensando na arquitetura do sistema

● Agora, no método onCreate() da nossa Activity, precisamos povoar um objeto Aluno com dados da tela:Associa campos da tela

A referências de controle

Criação de um objeto Aluno

Associa campos da telaA referências de controle

Page 18: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

18/90

Pensando na arquitetura do sistema

● Agora, no método onCreate() da nossa Activity, precisamos povoar um objeto Aluno com dados da tela:Associa campos da tela

A referências de controle

Criação de um objeto Aluno

Povoar o novo Aluno comdados vindos da tela

Page 19: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

19/90

Pensando na arquitetura do sistema

● A complexidade da Activity aumenta, à medida que novas funcionalidades forem implementadas

● É uma boa prática de programação isolarmos pequenas responsabilidades em outras classes

● Assim, a Activity passa a realizar o seu trabalho interagindo com pequenos especialistas

● Neste cenário, podemos implementar o padrão de projeto View Helper, que define a criação de classes especialistas em extrair e tratar dados das telas

Page 20: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

20/90

Exercício 02: A classe Helper

Page 21: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

21/90

Exercício 02: A classe HelperNovo pacote para guardar

nossos Helpers

Page 22: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

22/90

Exercício 02: A classe HelperNovo pacote para guardar

nossos Helpers

Clase Helper para o nossoformulário

Page 23: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

23/90

Exercício 02: A classe Helper

Atributos que representam componentes de tela

Novo pacote para guardarnossos Helpers

Clase Helper para o nossoformulário

Page 24: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

24/90

Exercício 02: A classe Helper

Atributos que representam componentes de tela

Atributo que que armazena a referência a um Aluno

Novo pacote para guardarnossos Helpers

Clase Helper para o nossoformulário

Page 25: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

25/90

Exercício 02: A classe Helper (continuação)

● Método construtor que recebe um FormularioActivity

Page 26: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

26/90

Exercício 02: A classe Helper (continuação)

● Método construtor que recebe um FormularioActivity

O construtor recebe um FormularioActivity

Page 27: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

27/90

Exercício 02: A classe Helper (continuação)

● Método construtor que recebe um FormularioActivity

O construtor recebe um FormularioActivity

Associa atributos do helpera componentes de tela

Page 28: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

28/90

Exercício 02: A classe Helper (continuação)

● Método construtor que recebe um FormularioActivity

O construtor recebe um FormularioActivity

Associa atributos do helpera componentes de tela

Criação do objeto Aluno

Page 29: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

29/90

Exercício 02: A classe Helper ( Final )

Page 30: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

30/90

Exercício 02: A classe Helper ( Final )

Método que retorna Alunocom dados vindos da Tela

Page 31: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

31/90

Exercício 02: A classe Helper ( Final )

Método que retorna Alunocom dados vindos da Tela

Seta os atributos do Alunocom campos da Tela

Page 32: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

32/90

Exercício 02: A classe Helper ( Final )

Método que retorna Alunocom dados vindos da Tela

Seta os atributos do Alunocom campos da Tela

Retorna uma referência para um objeto Aluno

Page 33: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

33/90

Usando o Helper

● Agora que nossa classe FormularioHelper está pronta, podemos utilizá-la na nossa classe de controle FormularioActivity

● Para isso, vamos criar um atributo FormularioHelper

● Criar um objeto Helper no método onCreate()

● Utilizar os dados do Aluno em qualquer método que necessite desse objeto (reuso)

● Em nosso exemplo, usaremos o click do botão para exibir o nome do aluno

Page 34: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

34/90

Exercício 03: Usando o Helper na View

Page 35: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

35/90

Exercício 03: Usando o Helper na ViewDefinição do novo atributoFormularioHelper

Page 36: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

36/90

Exercício 03: Usando o Helper na ViewDefinição do novo atributoFormularioHelper

Inicialização do helper, passando uma referênciapara o objeto atual(this)

Page 37: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

37/90

Exercício 03: Usando o Helper na ViewDefinição do novo atributoFormularioHelper

Inicialização do helper, passando uma referênciapara o objeto atual(this)

Pedindo do Helper uma referência a Aluno

Page 38: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

38/90

Exercício 03: Usando o Helper na ViewDefinição do novo atributoFormularioHelper

Inicialização do helper, passando uma referênciapara o objeto atual(this)

Pedindo do Helper uma referência a Aluno

Usando o novo objetoAluno

Page 39: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

39/90

Chegou a hora da persistência

● O ViewHelper extrai os dados de Aluno da tela

● Vamos armazenar esses dados em um Banco de Dados

● O Android vem com o banco relacional SQLite

● Para converter Objetos Java em Relações do banco de dados, vamos utilizar o padrão de projeto DAO

● DAO (Data Access Object) define que, para cada tabela do banco, criamos uma classe de perssitência

● Ex: para a tabela Aluno, teremos uma classe AlunoDAO, responsável pelo CRUD do aluno

Page 40: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

40/90

Exercício 04: Classe AlunoDAO

● Crie a classe para persistir dados do Aluno:

Page 41: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

41/90

Exercício 04: Classe AlunoDAO

● Crie a classe para persistir dados do Aluno:Novo pacote para

classes de persistência

Page 42: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

42/90

Exercício 04: Classe AlunoDAO

● Crie a classe para persistir dados do Aluno:Novo pacote para

classes de persistência

Classe DAO para persistir dados de

Alunos

Page 43: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

43/90

Exercício 04: Classe AlunoDAO

● Crie a classe para persistir dados do Aluno:Novo pacote para

classes de persistência

Classe DAO para persistir dados de

Alunos

Filha da classe depersistência

SQLiteOpenHelper

Page 44: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

44/90

Mas nem tudo são flores

● Até o momento da elaboração deste treinamento, não havia um framework estável para tratar o Mapeamento Objeto Relacional (vulgo MOR) em Android

● Dito isto, só nos resta fazer o controle manual das versões do nosso Banco de Dados

● Vamos atualizar nossa classe AlunoDAO para inclusão de algumas constantes necessárias ao nosso controle de versões

● Em seguida, vamos começar a usar as constantes no construtor da classe AlunoDAO

Page 45: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

45/90

Exercício 05: Controle de versão do BD

Page 46: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

46/90

Exercício 05: Controle de versão do BDNovas constantes para controle manual de

versão do BD

Page 47: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

47/90

Exercício 05: Controle de versão do BDNovas constantes para controle manual de

versão do BD

Registro da TAG de logpadrão da nossa APP

Page 48: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

48/90

Exercício 05: Controle de versão do BDNovas constantes para controle manual de

versão do BD

Registro da TAG de logpadrão da nossa APP

Método construtor que recebe apenas o Contexto

Page 49: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

49/90

Exercício 05: Controle de versão do BDNovas constantes para controle manual de

versão do BD

Registro da TAG de logpadrão da nossa APP

Método construtor que recebe apenas o Contexto

Chamada ao construtorda classe pai

Page 50: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

50/90

Criação e atualização do BD

● Uma vez que o nosso controle de versão ocorre de forma manual, precisamos de métodos para criar e atualizar a estrutura das tabelas do nosso BD

● O método onCreate(SQLiteDatabase database) é invocado sempre que uma tabela não existir na base.

● Já o método onUpgrade(SQLiteDatabase database, int versaoAntiga, int versaoNova) é chamado quando precisamos atualizar a estrutura das tabelas

● Na nossa App, usaremos o OnUpgrade() para apagar e reconstruir a base

Page 51: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

51/90

Exercício 06: Criação de tabelas

● Na classe AlunoDAO, crie o método onCreate():

Page 52: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

52/90

Exercício 06: Criação de tabelas

● Na classe AlunoDAO, crie o método onCreate():

Definição do comandoque será executado

Page 53: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

53/90

Exercício 06: Criação de tabelas

● Na classe AlunoDAO, crie o método onCreate():

Definição do comandoque será executado

Execução da atualização do banco de dados

Page 54: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

54/90

Exercício 07: Atualização de tabelas

● Na classe AlunoDAO, crie o método onUpdate():

Page 55: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

55/90

Exercício 07: Atualização de tabelas

● Na classe AlunoDAO, crie o método onUpdate():

Page 56: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

56/90

Exercício 08: AlunoDAO.cadastrar()

Page 57: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

57/90

Exercício 08: AlunoDAO.cadastrar()Método que recebe um

objeto Aluno e salvaseus dados no BD

Page 58: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

58/90

Exercício 08: AlunoDAO.cadastrar()Método que recebe um

objeto Aluno e salvaseus dados no BD

Objeto que guarda os valores que serão usados

para salvar no BD

Page 59: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

59/90

Exercício 08: AlunoDAO.cadastrar()Método que recebe um

objeto Aluno e salvaseus dados no BD

Povoando o mapa de valores com [chave:valor]

Objeto que guarda os valores que serão usados

para salvar no BD

Page 60: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

60/90

Exercício 08: AlunoDAO.cadastrar()Método que recebe um

objeto Aluno e salvaseus dados no BD

Povoando o mapa de valores com [chave:valor]

Objeto que guarda os valores que serão usados

para salvar no BD

Armazena os dadosdo Aluno no banco

Page 61: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

61/90

Atualização da FormularioActivity

● Agora que nossa camada de modelo está prepara para o cadastro do aluno, podemos atualizar nossa tela de formulário;

● No click do botão de Salvar, vamos:

– Pedir um objeto Aluno do Helper;

– Abrir uma conexão com BD, criando AlunoDAO;

– Cadastrar o novo Aluno no BD; e

– Fechar a conexão com o banco de dados

Page 62: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

62/90

Exercício 09: Botão salvar

Page 63: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

63/90

Exercício 09: Botão salvar

Page 64: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

64/90

Queremos ver o que foi salvo

● Para visualizar os dados do banco de dados, precisamos atualizar as camadas de visão, controle e modelo

● Na camada de modelo, vamos criar o método listar()

● Vamos remover o EditText e Button das camadas de visão e controle

● Na camada de controle, precisamos alterar o método onCreate() da ListaAlunosActivity para chamar o método listar() da camada de modelo e apagar os métodos:

– onSaveInstanceState() e onRestoreInstanceState()

Page 65: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

65/90

Exercício 10: método AlunoDAO.listar()

● Início do método para recuperar Alunos do BD

Page 66: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

66/90

Exercício 10: método AlunoDAO.listar()

● Início do método para recuperar Alunos do BD

Instrução SQL para buscar todos os Alunos

Page 67: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

67/90

Exercício 10: método AlunoDAO.listar()

● Início do método para recuperar Alunos do BD

Instrução SQL para buscar todos os Alunos

O Android recupera os registros do SQLite

em um Cursor

Page 68: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

68/90

Exercício 10: método AlunoDAO.listar()

● Início do método para recuperar Alunos do BD

Instrução SQL para buscar todos os Alunos

O Android recupera os registros do SQLite

em um Cursor

Vetor de parâmetros daconsulta SQL

Page 69: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

69/90

Exercício 10: final do método listar()

Page 70: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

70/90

Exercício 10: final do método listar()Percorre todos os

registros do Cursor

Page 71: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

71/90

Exercício 10: final do método listar()Percorre todos os

registros do Cursor

Carrega o objeto Alunocom campos do Cursor

Page 72: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

72/90

Exercício 10: final do método listar()Percorre todos os

registros do Cursor

Carrega o objeto Alunocom campos do Cursor

Adiciona o Aluno àcoleção de resposta

Page 73: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

73/90

Exercício 10: final do método listar()Percorre todos os

registros do Cursor

Carrega o objeto Alunocom campos do Cursor

Adiciona o Aluno àcoleção de resposta

android.database.SQLExceptionÉ filha de RuntimeException

Page 74: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

74/90

Exercício 10: final do método listar()Percorre todos os

registros do Cursor

Carrega o objeto Alunocom campos do Cursor

Adiciona o Aluno àcoleção de resposta

android.database.SQLExceptionÉ filha de RuntimeException

Garante o fechamentoda conexão com BD

Page 75: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

75/90

Exercício 11: Crie Aluno.toString()

Page 76: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

76/90

Exercício 12: Atualização da Tela inicial

● Altere o arquivo: /res/layout/listaalunoslayout.xml

● Deixe apenas a ListView

Page 77: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

77/90

Exercício 13: camada de controle

● No método onCreate() da ListaAlunosActivity, deixe apenas a associação da ListView

Page 78: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

78/90

Exercício 13: camada de controle

● No método onCreate() da ListaAlunosActivity, deixe apenas a associação da ListView

Vamos manter a associação entre view e controller

Page 79: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

79/90

Exercício 13: camada de controle

● No método onCreate() da ListaAlunosActivity, deixe apenas a associação da ListView

O código para carga da coleção de alunos

ficará em outro método

Vamos manter a associação entre view e controller

Page 80: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

80/90

Exercício 14: Mudança de tipos

● Nossa coleção de Alunos deve deixar de ser List<String> e se tornar List<Aluno>

● Altere, também, o tipo do ArrayAdapter

Page 81: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

81/90

Exercício 14: Mudança de tipos

● Nossa coleção de Alunos deve deixar de ser List<String> e se tornar List<Aluno>

● Altere, também, o tipo do ArrayAdapter

Page 82: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

82/90

Exercício 15: carga dos dados

● Na ListaAlunosActivity, crie o método carregarLista() para acesso ao DAO e carga da coleção de Alunos

Page 83: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

83/90

Exercício 15: carga dos dados

● Na ListaAlunosActivity, crie o método carregarLista() para acesso ao DAO e carga da coleção de AlunosNovo método para

carga da coleçãode alunos

Page 84: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

84/90

Exercício 15: carga dos dados

● Na ListaAlunosActivity, crie o método carregarLista() para acesso ao DAO e carga da coleção de Alunos

Acesso à camada de modelo

Novo método paracarga da coleção

de alunos

Page 85: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

85/90

Exercício 15: carga dos dados

● Na ListaAlunosActivity, crie o método carregarLista() para acesso ao DAO e carga da coleção de Alunos

Acesso à camada de modelo

Novo método paracarga da coleção

de alunos

Atualizaçãoda tela

Page 86: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

86/90

Exercício 16: Carga no onResume()

● Na classe ListaAlunosActivity, vamos cria o método onResume()

● Nesse método, vamos fazer a chamada a carregarLista()

Page 87: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

87/90

Execute a nossa App

Page 88: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

88/90

O que vem a seguir?

● Complemento do cadastro - exclusão (ContextMenu)

● Compartilhar informações entre Activities – Intents

● Intent implicita – Chamada telefônica para um aluno

● Envio e Recebimento de SMS

● Navegar em site do Aluno e Envio de email

● Câmera e arquivos

● LayoutInflater

● Serviços de background

● Integração via JSON

Page 89: Capítulo 04 - Persistência de dados com SQLite

M.Sc. Márcio Palheta

89/90

Referências

● www.caelum.com.br● d.android.com● LECHETA, Ricardo. Google Android, 3a edição,

Novatec, São Paulo, 2013● Código fonte completo:

https://github.com/marciopalheta/cursosandroid

Page 90: Capítulo 04 - Persistência de dados com SQLite

Capítulo 04: Persistência com SQLite