SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
Capítulo 06: Trabalhando com Intents
Instrutor
●

Programador desde 2000

●

Aluno de doutorado

●

●

●

●

Mestre em informática pelo
ICOMP/UFAM
Especialista em aplicações
WEB – FUCAPI
marcio.palheta@gmail.com
sites.google.com/site/marcio
palheta
M.Sc. Márcio Palheta
Agenda
●

Trocar de dados entre activities - Intents

●

Edição do aluno selecionado

●

Atualização do FormularioHelper

●

AndroidManifest.xml e suas Permissões

●

Intents implícitas:

●

Ligar para aluno Enviar SMS, Navegar no Site,
Enviar Email e Compartilhar dados em redes sociais

M.Sc. Márcio Palheta

3/59
Edição dos dados do aluno
●

●

●

●

●

Agora precisamos criarr a funcionalidade para alterar os
dados de um aluno
Quando usamos o click logo da ListView, a App exibe um
menu de contexto, com possíveis ações para o Aluno
No click curto, queremos que seja chamada a tela de
formulário, carregada com os dados do aluno selecionado
Mas a dúvida é: Como enviar o aluno selecionado na
ListaAlunosActivity para FormularioActivity ?
Vamos usar Intents para enviar objetos Serializáveis de
uma Activity para outra
M.Sc. Márcio Palheta

4/59
Passo a passo
●

Para realizar a edição de dados do Aluno, precisamos:

●

Tornar o bean Aluno “Serializável”

●

Implementar o método AlunoDAO.alterar(Aluno);

●

●

●

●

Enviar um objeto Aluno da ListaAlunosActivity para
FormularioActivity;
Carregar o formulário com os dados do Aluno; e
Veirificar se é necessário cadastrar ou alterar os dados do
Aluno;
Uuuufa. Vamos lá. :-)
M.Sc. Márcio Palheta

5/59
Exercício 01: Aluno Serializável

M.Sc. Márcio Palheta

6/59
Exercício 01: Aluno Serializável

Para transitar entre
telas, a classe Aluno deve
implementar Serializable

M.Sc. Márcio Palheta

7/59
Exercício 02: AlunoDAO.alterar()
●

Na classe AlunoDAO, inclua o método alterar(Aluno)

M.Sc. Márcio Palheta

8/59
Exercício 02: AlunoDAO.alterar()
●

Valores que serão

Na classe AlunoDAO, inclua o método alterar(Aluno) o BD
enviados para

M.Sc. Márcio Palheta

9/59
Exercício 02: AlunoDAO.alterar()
●

Valores que serão

Na classe AlunoDAO, inclua o método alterar(Aluno) o BD
enviados para

Valores dos parâmetros
da cláusula WHERE

M.Sc. Márcio Palheta

10/59
Exercício 02: AlunoDAO.alterar()
●

Valores que serão

Na classe AlunoDAO, inclua o método alterar(Aluno) o BD
enviados para

Valores dos parâmetros
da cláusula WHERE
Atualização dos
dados do Aluno

M.Sc. Márcio Palheta

11/59
Exercício 03: Transição de telas
●

Na ListaAlunosActivity, atualize o click da ListView:

M.Sc. Márcio Palheta

12/59
Exercício 03: Transição de telas
●

Na ListaAlunosActivity, atualize o click da ListView:
Intenção de navegar
de ListaAlunosActivity
para FormularioActivity

M.Sc. Márcio Palheta

13/59
Exercício 03: Transição de telas
●

Na ListaAlunosActivity, atualize o click da ListView:
Intenção de navegar
de ListaAlunosActivity
para FormularioActivity
Recupera o aluno
selecionado

M.Sc. Márcio Palheta

14/59
Exercício 03: Transição de telas
●

Na ListaAlunosActivity, atualize o click da ListView:
Intenção de navegar
de ListaAlunosActivity
para FormularioActivity
Recupera o aluno
selecionado

Compartilha o objeto
Aluno com a nova tela

M.Sc. Márcio Palheta

15/59
Exercício 03: Transição de telas
●

Na ListaAlunosActivity, atualize o click da ListView:
Intenção de navegar
de ListaAlunosActivity
para FormularioActivity
Recupera o aluno
selecionado

Compartilha o objeto
Aluno com a nova tela

Inicia a tela de
Formulário
M.Sc. Márcio Palheta

16/59
Exercício 04: Atualizar formulário
●

Adicione o método setAluno(Aluno) em FormularioHelper

M.Sc. Márcio Palheta

17/59
Exercício 04: Atualizar formulário
●

Adicione o método setAluno(Aluno) em FormularioHelper
Novo método da classe
FormularioHelper

M.Sc. Márcio Palheta

18/59
Exercício 04: Atualizar formulário
●

Adicione o método setAluno(Aluno) em FormularioHelper
Novo método da classe
FormularioHelper
Atualização dos campos
da tela de formulário

M.Sc. Márcio Palheta

19/59
Exercício 04: Atualizar formulário
●

Adicione o método setAluno(Aluno) em FormularioHelper
Novo método da classe
FormularioHelper
Atualização dos campos
da tela de formulário

Atualiza a referência
FormularioHelper.aluno

M.Sc. Márcio Palheta

20/59
Exercício 05: Dados na tela
●

Atualize o método FormularioActivity.onCreate():

M.Sc. Márcio Palheta

21/59
Exercício 05: Dados na tela
●

Atualize o método FormularioActivity.onCreate():
Recupera o objeto Aluno
enviado pela
ListaAlunosActivity

M.Sc. Márcio Palheta

22/59
Exercício 05: Dados na tela
●

Atualize o método FormularioActivity.onCreate():

Retorna a Intent que
chamou a Activity

Recupera o objeto Aluno
enviado pela
ListaAlunosActivity

M.Sc. Márcio Palheta

23/59
Exercício 05: Dados na tela
●

Atualize o método FormularioActivity.onCreate():
Recupera o objeto Aluno
enviado pela
ListaAlunosActivity
Solicita que o Helper
atualize os campos
do Formulário

M.Sc. Márcio Palheta

24/59
Exercício 06: Alterar ou Cadastrar?
●

Atualize o click do botão salvar da FormularioActivity

M.Sc. Márcio Palheta

25/59
Exercício 06: Alterar ou Cadastrar?
●

Atualize o click do botão salvar da FormularioActivity
Verifica se é necessário
Cadastrar ou Alterar
os dados do Aluno

M.Sc. Márcio Palheta

26/59
Rode a App

M.Sc. Márcio Palheta

27/59
Rode a App
Selecione um Aluno

M.Sc. Márcio Palheta

28/59
Tela com dados do Aluno

Rode a App
Selecione um Aluno

M.Sc. Márcio Palheta

29/59
Android e as Permissões de Acesso
●

Vez por outra, pode ser necessário que nossa App acesse
recursos do próprio device, como:
–

●

●

●

Câmera, Arquivos, Internet etc

Para que o acesso seja autorizado, precisamos registrar
esses interesses no AndroidManifest.xml
Vamos incluir a tag uses-permission e informar o valor
para sua propriedade android:name
Exemplo para solicitação de acesso à câmera:

<uses-permission
android:name="android.permission.CAMERA"/>
M.Sc. Márcio Palheta

30/59
Exercício 07: Permissões de Acesso
●

Inclua as solicitações de Acesso entre as tags:

●

<uses-sdk /> e <appication>

M.Sc. Márcio Palheta

31/59
Exercício 07: Permissões de Acesso
●

Inclua as solicitações de Acesso entre as tags:

●

<uses-sdk /> e <appication>

M.Sc. Márcio Palheta

32/59
Exercício 07: Permissões de Acesso
●

Inclua as seguintes permissões no AndroidManifest.xml:

M.Sc. Márcio Palheta

33/59
Intents implícitas
●

●

●

●

●

Em nossa aplicação, precisamos realizar uma chamada
telefônica para um aluno;
O Android nos oferece duas estratégias para isso:
Na 1a, podemos acessar o telefone em baixo nível e
controlar todo o ciclo de vida da chamada (o que pode não
ser uma boa ideia)
Já na 2a, podemos usar uma Intent que já sabe fazer
ligações telefônicas: Intent.ACTION_CALL
O Android oferece várias Activities prontas para acesso a
funcionalidades do device
M.Sc. Márcio Palheta

34/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

M.Sc. Márcio Palheta

35/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:
Item que realiza uma
chamada telefônica
para o Aluno

M.Sc. Márcio Palheta

36/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:
Item que realiza uma
chamada telefônica
para o Aluno
Intent implícita

M.Sc. Márcio Palheta

37/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:
Item que realiza uma
chamada telefônica
para o Aluno
Padrão para
chamada telefônica

M.Sc. Márcio Palheta

38/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:
Item que realiza uma
chamada telefônica
para o Aluno
Iniciar Activity
implícita

M.Sc. Márcio Palheta

39/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

Item que realiza
o envio de SMS
para o Aluno

M.Sc. Márcio Palheta

40/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

●

Inclua opções para ver Aluno no Mapa e Navegar no site

M.Sc. Márcio Palheta

41/59
Exercício 08: Ações do ContextMenu
●

●

Altere o método onContextItemSelected da ListaAlunos:
Inclua opções para ver Aluno no Mapa e

Item que busca
aluno no mapa
Navegar no site

M.Sc. Márcio Palheta

42/59
Exercício 08: Ações do ContextMenu
●

●

Altere o método onContextItemSelected da ListaAlunos:
Inclua opções para ver Aluno no Mapa e

Item que busca
aluno no mapa
Navegar no site

Padrão para
Busca em mapa

M.Sc. Márcio Palheta

43/59
Exercício 08: Ações do ContextMenu
●

●

Altere o método onContextItemSelected da ListaAlunos:
Inclua opções para ver Aluno no Mapa e

Item que busca
aluno no mapa
Navegar no site

Padrão para
Busca em mapa
Ainda vamos falar
Muito sobre mapas

M.Sc. Márcio Palheta

44/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

●

Inclua opções para ver Aluno no Mapa e Navegar no site

Item que Navega
no site do Aluno

M.Sc. Márcio Palheta

45/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

●

Última opção: Enviar e-mail para aluno

M.Sc. Márcio Palheta

46/59
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

●

Última opção: Enviar e-mail para aluno

M.Sc. Márcio Palheta

47/59
Teste do envio de email

M.Sc. Márcio Palheta

48/59
Teste do envio de email

Click LONGO

M.Sc. Márcio Palheta

49/59
Teste do envio de email

M.Sc. Márcio Palheta

50/59
Teste do envio de email

Selecione o item
Enviar E-mail

M.Sc. Márcio Palheta

51/59
Teste do envio de email

M.Sc. Márcio Palheta

52/59
Teste do envio de email

Escolha a Forma
de Envio

M.Sc. Márcio Palheta

53/59
Teste do envio de email

Escolha a Forma
de Envio

Podem variar, de
acordo com as Apps
Instaladas no Device

M.Sc. Márcio Palheta

54/59
Teste do envio de email

Escolha a Forma
de Envio

Tela da App de
Envio que foi
selecionada
Podem variar, de
acordo com as Apps
Instaladas no Device

M.Sc. Márcio Palheta

55/59
Teste de funcionalidades
TESTE AS OUTRAS
FUNCIONALIDADES
CRIADAS EM NOSSA
APP
Esta apresentação criada quarta feira, 27/11/2013, dia em
que o MENGÃO foi TRI-CAMPEÃO da Copa do Brasil,
vencendo o Atlético-PR porMárcio Palheta
M.Sc. 2 x 0, no “Maraca” lotaaaddo.
Saudações Rubro-Negras :-)

56/59
O que vem a seguir?
●

Câmera

●

Arquivos

●

Recuperar resultado de Activity chamada

●

LayoutInflater

●

Serviços de background: Receber SMS e Tocar MP3

●

Integração via JSON

●

Tarefas assíncronas e Barra de progresso

●

Fragments

●

Google Maps e GPS
M.Sc. Márcio Palheta

57/59
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

M.Sc. Márcio Palheta

58/59
Capítulo 06: Trabalhando com Intents

Mais conteúdo relacionado

Semelhante a Capítulo 06 - Comunicação entre Activities e Intents Implícitas

Aula 02 fundamentos
Aula 02   fundamentosAula 02   fundamentos
Aula 02 fundamentosfmkoba
 
Ação magalhães aula1
Ação magalhães aula1Ação magalhães aula1
Ação magalhães aula1anapatricio
 
Ativ 35 Sidineimelquiades
Ativ 35 SidineimelquiadesAtiv 35 Sidineimelquiades
Ativ 35 Sidineimelquiadesguest01b208
 
Ativ 35 Sidineimelquiades
Ativ 35 SidineimelquiadesAtiv 35 Sidineimelquiades
Ativ 35 Sidineimelquiadesguest860a2a
 
Aula de Orientação a Objetos - Herança com Java
Aula de Orientação a Objetos - Herança com JavaAula de Orientação a Objetos - Herança com Java
Aula de Orientação a Objetos - Herança com JavaJooMarcos614503
 
Teste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoTeste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoLaís Berlatto
 
Capítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONCapítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONMarcio Palheta
 
Tutorial ms project portugues
Tutorial ms project portuguesTutorial ms project portugues
Tutorial ms project portuguesPeak Dfer
 
Apresentação Intercalar
Apresentação Intercalar Apresentação Intercalar
Apresentação Intercalar Maria Munteanu
 
Projeto graphmatica e o ensino de funções no ensino médio
Projeto graphmatica e o ensino de funções no ensino médioProjeto graphmatica e o ensino de funções no ensino médio
Projeto graphmatica e o ensino de funções no ensino médiocolegiocpf
 
Teste de usabilidade - Ferramentas online para testes
Teste de usabilidade - Ferramentas online para testesTeste de usabilidade - Ferramentas online para testes
Teste de usabilidade - Ferramentas online para testesLuiz Agner
 
Criar e gerir um blogue an2
Criar e gerir um blogue an2Criar e gerir um blogue an2
Criar e gerir um blogue an2anapaulavilas
 
Melhorando a experiência do usuário e otimização conversões através de aplica...
Melhorando a experiência do usuário e otimização conversões através de aplica...Melhorando a experiência do usuário e otimização conversões através de aplica...
Melhorando a experiência do usuário e otimização conversões através de aplica...Douglas Benjamim
 

Semelhante a Capítulo 06 - Comunicação entre Activities e Intents Implícitas (19)

Aula 02 fundamentos
Aula 02   fundamentosAula 02   fundamentos
Aula 02 fundamentos
 
Ação magalhães aula1
Ação magalhães aula1Ação magalhães aula1
Ação magalhães aula1
 
Ativ 35 Sidineimelquiades
Ativ 35 SidineimelquiadesAtiv 35 Sidineimelquiades
Ativ 35 Sidineimelquiades
 
Ativ 35 Sidineimelquiades
Ativ 35 SidineimelquiadesAtiv 35 Sidineimelquiades
Ativ 35 Sidineimelquiades
 
Aula de Orientação a Objetos - Herança com Java
Aula de Orientação a Objetos - Herança com JavaAula de Orientação a Objetos - Herança com Java
Aula de Orientação a Objetos - Herança com Java
 
Teste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoTeste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso Cognitivo
 
Função poliomial do 1 grau gabarito
Função poliomial do 1 grau gabaritoFunção poliomial do 1 grau gabarito
Função poliomial do 1 grau gabarito
 
Função poliomial do 1 grau gabarito
Função poliomial do 1 grau gabaritoFunção poliomial do 1 grau gabarito
Função poliomial do 1 grau gabarito
 
Ll3#15
Ll3#15Ll3#15
Ll3#15
 
Relatório_168_APPs__Gerenciamento_Projetos
Relatório_168_APPs__Gerenciamento_ProjetosRelatório_168_APPs__Gerenciamento_Projetos
Relatório_168_APPs__Gerenciamento_Projetos
 
Capítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONCapítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSON
 
Tutorial ms project portugues
Tutorial ms project portuguesTutorial ms project portugues
Tutorial ms project portugues
 
Aula - Activity
Aula  -  ActivityAula  -  Activity
Aula - Activity
 
Apresentação Intercalar
Apresentação Intercalar Apresentação Intercalar
Apresentação Intercalar
 
Projeto graphmatica e o ensino de funções no ensino médio
Projeto graphmatica e o ensino de funções no ensino médioProjeto graphmatica e o ensino de funções no ensino médio
Projeto graphmatica e o ensino de funções no ensino médio
 
MoodleMoot 2022 - plugins
MoodleMoot 2022 - pluginsMoodleMoot 2022 - plugins
MoodleMoot 2022 - plugins
 
Teste de usabilidade - Ferramentas online para testes
Teste de usabilidade - Ferramentas online para testesTeste de usabilidade - Ferramentas online para testes
Teste de usabilidade - Ferramentas online para testes
 
Criar e gerir um blogue an2
Criar e gerir um blogue an2Criar e gerir um blogue an2
Criar e gerir um blogue an2
 
Melhorando a experiência do usuário e otimização conversões através de aplica...
Melhorando a experiência do usuário e otimização conversões através de aplica...Melhorando a experiência do usuário e otimização conversões através de aplica...
Melhorando a experiência do usuário e otimização conversões através de aplica...
 

Mais de Marcio Palheta

Capítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundCapítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundMarcio Palheta
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldMarcio Palheta
 
Implementação de Sockets em JAVA
Implementação de Sockets em JAVAImplementação de Sockets em JAVA
Implementação de Sockets em JAVAMarcio Palheta
 
Trabalhando com Threads em JAVA
Trabalhando com Threads em JAVATrabalhando com Threads em JAVA
Trabalhando com Threads em JAVAMarcio Palheta
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao PythonMarcio Palheta
 
Weka em aplicações java
Weka em aplicações javaWeka em aplicações java
Weka em aplicações javaMarcio Palheta
 
Palestra ministrada na Feira Norte do Estudante 2012
Palestra ministrada na Feira Norte do Estudante 2012Palestra ministrada na Feira Norte do Estudante 2012
Palestra ministrada na Feira Norte do Estudante 2012Marcio Palheta
 

Mais de Marcio Palheta (7)

Capítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundCapítulo 09 - Serviços em Background
Capítulo 09 - Serviços em Background
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
 
Implementação de Sockets em JAVA
Implementação de Sockets em JAVAImplementação de Sockets em JAVA
Implementação de Sockets em JAVA
 
Trabalhando com Threads em JAVA
Trabalhando com Threads em JAVATrabalhando com Threads em JAVA
Trabalhando com Threads em JAVA
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Weka em aplicações java
Weka em aplicações javaWeka em aplicações java
Weka em aplicações java
 
Palestra ministrada na Feira Norte do Estudante 2012
Palestra ministrada na Feira Norte do Estudante 2012Palestra ministrada na Feira Norte do Estudante 2012
Palestra ministrada na Feira Norte do Estudante 2012
 

Capítulo 06 - Comunicação entre Activities e Intents Implícitas

  • 2. Instrutor ● Programador desde 2000 ● Aluno de doutorado ● ● ● ● Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB – FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio palheta M.Sc. Márcio Palheta
  • 3. Agenda ● Trocar de dados entre activities - Intents ● Edição do aluno selecionado ● Atualização do FormularioHelper ● AndroidManifest.xml e suas Permissões ● Intents implícitas: ● Ligar para aluno Enviar SMS, Navegar no Site, Enviar Email e Compartilhar dados em redes sociais M.Sc. Márcio Palheta 3/59
  • 4. Edição dos dados do aluno ● ● ● ● ● Agora precisamos criarr a funcionalidade para alterar os dados de um aluno Quando usamos o click logo da ListView, a App exibe um menu de contexto, com possíveis ações para o Aluno No click curto, queremos que seja chamada a tela de formulário, carregada com os dados do aluno selecionado Mas a dúvida é: Como enviar o aluno selecionado na ListaAlunosActivity para FormularioActivity ? Vamos usar Intents para enviar objetos Serializáveis de uma Activity para outra M.Sc. Márcio Palheta 4/59
  • 5. Passo a passo ● Para realizar a edição de dados do Aluno, precisamos: ● Tornar o bean Aluno “Serializável” ● Implementar o método AlunoDAO.alterar(Aluno); ● ● ● ● Enviar um objeto Aluno da ListaAlunosActivity para FormularioActivity; Carregar o formulário com os dados do Aluno; e Veirificar se é necessário cadastrar ou alterar os dados do Aluno; Uuuufa. Vamos lá. :-) M.Sc. Márcio Palheta 5/59
  • 6. Exercício 01: Aluno Serializável M.Sc. Márcio Palheta 6/59
  • 7. Exercício 01: Aluno Serializável Para transitar entre telas, a classe Aluno deve implementar Serializable M.Sc. Márcio Palheta 7/59
  • 8. Exercício 02: AlunoDAO.alterar() ● Na classe AlunoDAO, inclua o método alterar(Aluno) M.Sc. Márcio Palheta 8/59
  • 9. Exercício 02: AlunoDAO.alterar() ● Valores que serão Na classe AlunoDAO, inclua o método alterar(Aluno) o BD enviados para M.Sc. Márcio Palheta 9/59
  • 10. Exercício 02: AlunoDAO.alterar() ● Valores que serão Na classe AlunoDAO, inclua o método alterar(Aluno) o BD enviados para Valores dos parâmetros da cláusula WHERE M.Sc. Márcio Palheta 10/59
  • 11. Exercício 02: AlunoDAO.alterar() ● Valores que serão Na classe AlunoDAO, inclua o método alterar(Aluno) o BD enviados para Valores dos parâmetros da cláusula WHERE Atualização dos dados do Aluno M.Sc. Márcio Palheta 11/59
  • 12. Exercício 03: Transição de telas ● Na ListaAlunosActivity, atualize o click da ListView: M.Sc. Márcio Palheta 12/59
  • 13. Exercício 03: Transição de telas ● Na ListaAlunosActivity, atualize o click da ListView: Intenção de navegar de ListaAlunosActivity para FormularioActivity M.Sc. Márcio Palheta 13/59
  • 14. Exercício 03: Transição de telas ● Na ListaAlunosActivity, atualize o click da ListView: Intenção de navegar de ListaAlunosActivity para FormularioActivity Recupera o aluno selecionado M.Sc. Márcio Palheta 14/59
  • 15. Exercício 03: Transição de telas ● Na ListaAlunosActivity, atualize o click da ListView: Intenção de navegar de ListaAlunosActivity para FormularioActivity Recupera o aluno selecionado Compartilha o objeto Aluno com a nova tela M.Sc. Márcio Palheta 15/59
  • 16. Exercício 03: Transição de telas ● Na ListaAlunosActivity, atualize o click da ListView: Intenção de navegar de ListaAlunosActivity para FormularioActivity Recupera o aluno selecionado Compartilha o objeto Aluno com a nova tela Inicia a tela de Formulário M.Sc. Márcio Palheta 16/59
  • 17. Exercício 04: Atualizar formulário ● Adicione o método setAluno(Aluno) em FormularioHelper M.Sc. Márcio Palheta 17/59
  • 18. Exercício 04: Atualizar formulário ● Adicione o método setAluno(Aluno) em FormularioHelper Novo método da classe FormularioHelper M.Sc. Márcio Palheta 18/59
  • 19. Exercício 04: Atualizar formulário ● Adicione o método setAluno(Aluno) em FormularioHelper Novo método da classe FormularioHelper Atualização dos campos da tela de formulário M.Sc. Márcio Palheta 19/59
  • 20. Exercício 04: Atualizar formulário ● Adicione o método setAluno(Aluno) em FormularioHelper Novo método da classe FormularioHelper Atualização dos campos da tela de formulário Atualiza a referência FormularioHelper.aluno M.Sc. Márcio Palheta 20/59
  • 21. Exercício 05: Dados na tela ● Atualize o método FormularioActivity.onCreate(): M.Sc. Márcio Palheta 21/59
  • 22. Exercício 05: Dados na tela ● Atualize o método FormularioActivity.onCreate(): Recupera o objeto Aluno enviado pela ListaAlunosActivity M.Sc. Márcio Palheta 22/59
  • 23. Exercício 05: Dados na tela ● Atualize o método FormularioActivity.onCreate(): Retorna a Intent que chamou a Activity Recupera o objeto Aluno enviado pela ListaAlunosActivity M.Sc. Márcio Palheta 23/59
  • 24. Exercício 05: Dados na tela ● Atualize o método FormularioActivity.onCreate(): Recupera o objeto Aluno enviado pela ListaAlunosActivity Solicita que o Helper atualize os campos do Formulário M.Sc. Márcio Palheta 24/59
  • 25. Exercício 06: Alterar ou Cadastrar? ● Atualize o click do botão salvar da FormularioActivity M.Sc. Márcio Palheta 25/59
  • 26. Exercício 06: Alterar ou Cadastrar? ● Atualize o click do botão salvar da FormularioActivity Verifica se é necessário Cadastrar ou Alterar os dados do Aluno M.Sc. Márcio Palheta 26/59
  • 27. Rode a App M.Sc. Márcio Palheta 27/59
  • 28. Rode a App Selecione um Aluno M.Sc. Márcio Palheta 28/59
  • 29. Tela com dados do Aluno Rode a App Selecione um Aluno M.Sc. Márcio Palheta 29/59
  • 30. Android e as Permissões de Acesso ● Vez por outra, pode ser necessário que nossa App acesse recursos do próprio device, como: – ● ● ● Câmera, Arquivos, Internet etc Para que o acesso seja autorizado, precisamos registrar esses interesses no AndroidManifest.xml Vamos incluir a tag uses-permission e informar o valor para sua propriedade android:name Exemplo para solicitação de acesso à câmera: <uses-permission android:name="android.permission.CAMERA"/> M.Sc. Márcio Palheta 30/59
  • 31. Exercício 07: Permissões de Acesso ● Inclua as solicitações de Acesso entre as tags: ● <uses-sdk /> e <appication> M.Sc. Márcio Palheta 31/59
  • 32. Exercício 07: Permissões de Acesso ● Inclua as solicitações de Acesso entre as tags: ● <uses-sdk /> e <appication> M.Sc. Márcio Palheta 32/59
  • 33. Exercício 07: Permissões de Acesso ● Inclua as seguintes permissões no AndroidManifest.xml: M.Sc. Márcio Palheta 33/59
  • 34. Intents implícitas ● ● ● ● ● Em nossa aplicação, precisamos realizar uma chamada telefônica para um aluno; O Android nos oferece duas estratégias para isso: Na 1a, podemos acessar o telefone em baixo nível e controlar todo o ciclo de vida da chamada (o que pode não ser uma boa ideia) Já na 2a, podemos usar uma Intent que já sabe fazer ligações telefônicas: Intent.ACTION_CALL O Android oferece várias Activities prontas para acesso a funcionalidades do device M.Sc. Márcio Palheta 34/59
  • 35. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: M.Sc. Márcio Palheta 35/59
  • 36. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: Item que realiza uma chamada telefônica para o Aluno M.Sc. Márcio Palheta 36/59
  • 37. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: Item que realiza uma chamada telefônica para o Aluno Intent implícita M.Sc. Márcio Palheta 37/59
  • 38. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: Item que realiza uma chamada telefônica para o Aluno Padrão para chamada telefônica M.Sc. Márcio Palheta 38/59
  • 39. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: Item que realiza uma chamada telefônica para o Aluno Iniciar Activity implícita M.Sc. Márcio Palheta 39/59
  • 40. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: Item que realiza o envio de SMS para o Aluno M.Sc. Márcio Palheta 40/59
  • 41. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: ● Inclua opções para ver Aluno no Mapa e Navegar no site M.Sc. Márcio Palheta 41/59
  • 42. Exercício 08: Ações do ContextMenu ● ● Altere o método onContextItemSelected da ListaAlunos: Inclua opções para ver Aluno no Mapa e Item que busca aluno no mapa Navegar no site M.Sc. Márcio Palheta 42/59
  • 43. Exercício 08: Ações do ContextMenu ● ● Altere o método onContextItemSelected da ListaAlunos: Inclua opções para ver Aluno no Mapa e Item que busca aluno no mapa Navegar no site Padrão para Busca em mapa M.Sc. Márcio Palheta 43/59
  • 44. Exercício 08: Ações do ContextMenu ● ● Altere o método onContextItemSelected da ListaAlunos: Inclua opções para ver Aluno no Mapa e Item que busca aluno no mapa Navegar no site Padrão para Busca em mapa Ainda vamos falar Muito sobre mapas M.Sc. Márcio Palheta 44/59
  • 45. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: ● Inclua opções para ver Aluno no Mapa e Navegar no site Item que Navega no site do Aluno M.Sc. Márcio Palheta 45/59
  • 46. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: ● Última opção: Enviar e-mail para aluno M.Sc. Márcio Palheta 46/59
  • 47. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: ● Última opção: Enviar e-mail para aluno M.Sc. Márcio Palheta 47/59
  • 48. Teste do envio de email M.Sc. Márcio Palheta 48/59
  • 49. Teste do envio de email Click LONGO M.Sc. Márcio Palheta 49/59
  • 50. Teste do envio de email M.Sc. Márcio Palheta 50/59
  • 51. Teste do envio de email Selecione o item Enviar E-mail M.Sc. Márcio Palheta 51/59
  • 52. Teste do envio de email M.Sc. Márcio Palheta 52/59
  • 53. Teste do envio de email Escolha a Forma de Envio M.Sc. Márcio Palheta 53/59
  • 54. Teste do envio de email Escolha a Forma de Envio Podem variar, de acordo com as Apps Instaladas no Device M.Sc. Márcio Palheta 54/59
  • 55. Teste do envio de email Escolha a Forma de Envio Tela da App de Envio que foi selecionada Podem variar, de acordo com as Apps Instaladas no Device M.Sc. Márcio Palheta 55/59
  • 56. Teste de funcionalidades TESTE AS OUTRAS FUNCIONALIDADES CRIADAS EM NOSSA APP Esta apresentação criada quarta feira, 27/11/2013, dia em que o MENGÃO foi TRI-CAMPEÃO da Copa do Brasil, vencendo o Atlético-PR porMárcio Palheta M.Sc. 2 x 0, no “Maraca” lotaaaddo. Saudações Rubro-Negras :-) 56/59
  • 57. O que vem a seguir? ● Câmera ● Arquivos ● Recuperar resultado de Activity chamada ● LayoutInflater ● Serviços de background: Receber SMS e Tocar MP3 ● Integração via JSON ● Tarefas assíncronas e Barra de progresso ● Fragments ● Google Maps e GPS M.Sc. Márcio Palheta 57/59
  • 58. 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 M.Sc. Márcio Palheta 58/59