Beruflich Dokumente
Kultur Dokumente
Instrutor
Programador desde 2000 Aluno de doutorado Mestre em informtica pelo ICOMP/UFAM Especialista em aplica es !E" # FUCAPI marcio$pal%eta&gmail$com sites$google$com/site/marcio pal%eta
M.Sc. Mrcio Palheta
Agenda
MVC em Android Cria)o da camada de modelo * entidade Aluno Padr)o de Pro+eto # ,ie- .elper Padr)o de Pro+eto # /ata Access O0+ect 1/AO2 C3U/ 1Create4 3ead4 Update4 /elete2
'/(0
C!$%&!LL#&
VI#,
La-outs ().ml+
M!"#L
"A!()*a'a+ #ntidades()*a'a+
M.Sc. Mrcio Palheta
5/(0
C!$%&!LL#&
C%amada de metodo12
modelo$getEstado12
VI#,
La-outs ().ml+
M!"#L
"A!()*a'a+ #ntidades()*a'a+
M.Sc. Mrcio Palheta
6/(0
C!$%&!LL#&
C%amada de metodo12
modelo$getEstado12
VI#,
La-outs ().ml+
M!"#L
"A!()*a'a+ #ntidades()*a'a+
M.Sc. Mrcio Palheta
9:;ite
8/(0
C!$%&!LL#&
C%amada de metodo12
VI#,
La-outs ().ml+
M!"#L
"A!()*a'a+ #ntidades()*a'a+
M.Sc. Mrcio Palheta
9:;ite
</(0
C!$%&!LL#&
C%amada de metodo12
VI#,
La-outs ().ml+
M!"#L
"A!()*a'a+ #ntidades()*a'a+
M.Sc. Mrcio Palheta
9:;ite
>/(0
C!$%&!LL#&
C%amada de metodo12
modelo$atuali?arEstado12
VI#,
La-outs ().ml+
M!"#L
"A!()*a'a+ #ntidades()*a'a+
M.Sc. Mrcio Palheta
9:;ite
(/(0
C!$%&!LL#&
C%amada de metodo12
modelo$atuali?arEstado12
VI#,
La-outs ().ml+ Aotifica)o de mudanas
M!"#L
"A!()*a'a+ #ntidades()*a'a+
9:;ite
@0/(0
C!$%&!LL#&
C%amada de metodo12
E=i0ir tela
tela$atuali?ar,isao12 modelo$getEstado12
modelo$atuali?arEstado12
VI#,
La-outs ().ml+ Aotifica)o de mudanas
M!"#L
"A!()*a'a+ #ntidades()*a'a+
9:;ite
@@/(0
A tela de ;istagem da nossa App permite o cadastro do nome dos alunos e os e=i0e em uma ;ist,ieContudo4 temos alguns pro0lemas nessa a0ordagemB
Os dados s)o perdidos Cuando a App D destruEda Precisamos de outros dados para o Aluno Persistir os dados em um "ando de /ados Usar a tela de Formulrio para cadastro e altera)o de dados do Aluno
M.Sc. Mrcio Palheta
@2/(0
@'/(0
@5/(0
Agora4 no mDtodo onCreate12 da nossa Acti7itF4 precisamos po7oar um o0+eto Aluno com dados da telaB
@6/(0
Agora4 no mDtodo onCreate12 da nossa Acti7itF4 Associa campos da tela precisamos po7oar um o0+eto Aluno com A dados da telaB referGncias de controle
@8/(0
Agora4 no mDtodo onCreate12 da nossa Acti7itF4 Associa campos da tela precisamos po7oar um o0+eto Aluno com dados da telaB A referGncias de controle
Cria)o de um o0+eto Aluno
@</(0
Agora4 no mDtodo onCreate12 da nossa Acti7itF4 Associa campos da tela precisamos po7oar um o0+eto Aluno com dados da telaB A referGncias de controle
Cria)o de um o0+eto Aluno
@>/(0
A comple=idade da Acti7itF aumenta4 H medida Cue no7as funcionalidades forem implementadas I uma 0oa prtica de programa)o isolarmos peCuenas responsa0ilidades em outras classes Assim4 a Acti7itF passa a reali?ar o seu tra0al%o interagindo com peCuenos especialistas Aeste cenrio4 podemos implementar o padr)o de pro+eto ,ie- .elper4 Cue define a cria)o de classes especialistas em e=trair e tratar dados das telas
@(/(0
20/(0
2@/(0
22/(0
2'/(0
25/(0
26/(0
28/(0
2</(0
2>/(0
( 8inal +
2(/(0
( 8inal +
'0/(0
( 8inal +
'@/(0
( 8inal +
'2/(0
9sando o 5elper
Agora Cue nossa classe Formulario.elper est pronta4 podemos utili?*la na nossa classe de controle FormularioActi7itF Para isso4 7amos criar um atri0uto Formulario.elper Criar um o0+eto .elper no mDtodo onCreate12 Utili?ar os dados do Aluno em CualCuer mDtodo Cue necessite desse o0+eto 1reuso2 Em nosso e=emplo4 usaremos o clicK do 0ot)o para e=i0ir o nome do aluno
M.Sc. Mrcio Palheta
''/(0
'5/(0
'6/(0
'8/(0
'</(0
'>/(0
O ,ie-.elper e=trai os dados de Aluno da tela ,amos arma?enar esses dados em um "anco de /ados O Android 7em com o 0anco relacional 9:;ite Para con7erter O0+etos La7a em 3ela es do 0anco de dados4 7amos utili?ar o padr)o de pro+eto /AO /AO 1/ata Access O0+ect2 define Cue4 para cada ta0ela do 0anco4 criamos uma classe de perssitGncia E=B para a ta0ela Aluno4 teremos uma classe Aluno/AO4 respons7el pelo C3U/ do aluno
M.Sc. Mrcio Palheta
'(/(0
50/(0
5@/(0
52/(0
5'/(0
AtD o momento da ela0ora)o deste treinamento4 n)o %a7ia um frame-orK est7el para tratar o Mapeamento O0+eto 3elacional 17ulgo MO32 em Android /ito isto4 sM nos resta fa?er o controle manual das 7ers es do nosso "anco de /ados ,amos atuali?ar nossa classe Aluno/AO para inclus)o de algumas constantes necessrias ao nosso controle de 7ers es Em seguida4 7amos comear a usar as constantes no construtor da classe Aluno/AO
M.Sc. Mrcio Palheta
55/(0
56/(0
58/(0
5</(0
3egistro da JAN de log padr)o da nossa APP MDtodo construtor Cue rece0e apenas o Conte=to
5>/(0
3egistro da JAN de log padr)o da nossa APP MDtodo construtor Cue rece0e apenas o Conte=to C%amada ao construtor da classe pai
5(/(0
Uma 7e? Cue o nosso controle de 7ers)o ocorre de forma manual4 precisamos de mDtodos para criar e atuali?ar a estrutura das ta0elas do nosso "/ O mDtodo onCreate19:;ite/ata0ase data0ase2 D in7ocado sempre Cue uma ta0ela n)o e=istir na 0ase$ L o mDtodo onUpgrade19:;ite/ata0ase data0ase4 int 7ersaoAntiga4 int 7ersaoAo7a2 D c%amado Cuando precisamos atuali?ar a estrutura das ta0elas Aa nossa App4 usaremos o OnUpgrade12 para apagar e reconstruir a 0ase
M.Sc. Mrcio Palheta
60/(0
6@/(0
62/(0
6'/(0
65/(0
66/(0
68/(0
6</(0
O0+eto Cue guarda os #.erccio 0A: Aluno"A!)cadastrar(+ 7alores Cue ser)o usados para sal7ar no "/
6>/(0
O0+eto Cue guarda os #.erccio 0A: Aluno"A!)cadastrar(+ 7alores Cue ser)o usados para sal7ar no "/
MDtodo Cue rece0e um o0+eto Aluno e sal7a seus dados no "/ Po7oando o mapa de 7alores com Oc%a7eB7alorP
6(/(0
O0+eto Cue guarda os #.erccio 0A: Aluno"A!)cadastrar(+ 7alores Cue ser)o usados para sal7ar no "/
MDtodo Cue rece0e um o0+eto Aluno e sal7a seus dados no "/ Po7oando o mapa de 7alores com Oc%a7eB7alorP
80/(0
Atuali>a67o da 8ormularioActi'it
Agora Cue nossa camada de modelo est prepara para o cadastro do aluno4 podemos atuali?ar nossa tela de formulrioQ Ao clicK do 0ot)o de 9al7ar4 7amosB
Pedir um o0+eto Aluno do .elperQ A0rir uma cone=)o com "/4 criando Aluno/AOQ Cadastrar o no7o Aluno no "/Q e Fec%ar a cone=)o com o 0anco de dados
8@/(0
82/(0
8'/(0
Para 7isuali?ar os dados do 0anco de dados4 precisamos atuali?ar as camadas de 7is)o4 controle e modelo Aa camada de modelo4 7amos criar o mDtodo listar12 ,amos remo7er o EditJe=t e "utton das camadas de 7is)o e controle Aa camada de controle4 precisamos alterar o mDtodo onCreate12 da ;istaAlunosActi7itF para c%amar o mDtodo listar12 da camada de modelo e apagar os mDtodosB
on9a7eInstance9tate12 e on3estoreInstance9tate12
M.Sc. Mrcio Palheta
85/(0
86/(0
88/(0
Instru)o 9:; para 0uscar todos os Alunos O Android recupera os registros do 9:;ite em um Cursor
8</(0
Instru)o 9:; para 0uscar todos os Alunos O Android recupera os registros do 9:;ite em um Cursor
8>/(0
8(/(0
<0/(0
<@/(0
<2/(0
<'/(0
<6/(0
<8/(0
<</(0
Ao mDtodo onCreate12 da ;istaAlunosActi7itF4 dei=e apenas a associa)o da ;ist,ie,amos manter a associa)o entre 7ie- e controller
<>/(0
Ao mDtodo onCreate12 da ;istaAlunosActi7itF4 dei=e apenas a associa)o da ;ist,ie,amos manter a associa)o entre 7ie- e controller O cMdigo para carga da cole)o de alunos ficar em outro mDtodo
<(/(0
Aossa cole)o de Alunos de7e dei=ar de ser ;istS9tringT e se tornar ;istSAlunoT Altere4 tam0Dm4 o tipo do ArraFAdapter
>0/(0
Aossa cole)o de Alunos de7e dei=ar de ser ;istS9tringT e se tornar ;istSAlunoT Altere4 tam0Dm4 o tipo do ArraFAdapter
>@/(0
Aa ;istaAlunosActi7itF4 crie o mDtodo carregar;ista12 para acesso ao /AO e carga da cole)o de Alunos
>2/(0
Aa ;istaAlunosActi7itF4 crie o mDtodo carregar;ista12 para Ao7o mDtodo para acesso ao /AO e carga da cole)o de Alunos carga da cole)o
de alunos
>'/(0
Aa ;istaAlunosActi7itF4 crie o mDtodo carregar;ista12 para Ao7o mDtodo para acesso ao /AO e carga da cole)o de Alunos carga da cole)o
de alunos
>5/(0
Aa ;istaAlunosActi7itF4 crie o mDtodo carregar;ista12 para Ao7o mDtodo para acesso ao /AO e carga da cole)o de Alunos carga da cole)o
de alunos
Atuali?a)o da tela
>6/(0
Aa classe ;istaAlunosActi7itF4 7amos cria o mDtodo on3esume12 Aesse mDtodo4 7amos fa?er a c%amada a carregar;ista12
>8/(0
></(0
Complemento do cadastro * e=clus)o 1Conte=tMenu2 Compartil%ar informa es entre Acti7ities # Intents Intent implicita # C%amada telefUnica para um aluno En7io e 3ece0imento de 9M9 Aa7egar em site do Aluno e En7io de email CRmera e arCui7os ;aFoutInflater 9er7ios de 0acKground Integra)o 7ia L9OA
M.Sc. Mrcio Palheta
>>/(0
&e<erncias
---$caelum$com$0r d$android$com ;EC.EJA4 3icardo$ Noogle Android4 'a edi)o4 Ao7atec4 9)o Paulo4 20@' CMdigo fonte completoB %ttpsB//git%u0$com/marciopal%eta/cursosandroid
>(/(0