Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Capítulo 06: Trabalhando com Intents
Instrutor
●

Programador desde 2000

●

Aluno de doutorado

●

●

●

●

Mestre em informática pelo
ICOMP/UFAM
Especialista...
Agenda
●

Trocar de dados entre activities - Intents

●

Edição do aluno selecionado

●

Atualização do FormularioHelper

...
Edição dos dados do aluno
●

●

●

●

●

Agora precisamos criarr a funcionalidade para alterar os
dados de um aluno
Quando...
Passo a passo
●

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

●

Tornar o bean Aluno “Serializável”

●

Implemen...
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 P...
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 pa...
Exercício 02: AlunoDAO.alterar()
●

Valores que serão

Na classe AlunoDAO, inclua o método alterar(Aluno) o BD
enviados pa...
Exercício 02: AlunoDAO.alterar()
●

Valores que serão

Na classe AlunoDAO, inclua o método alterar(Aluno) o BD
enviados pa...
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 ListaAlun...
Exercício 03: Transição de telas
●

Na ListaAlunosActivity, atualize o click da ListView:
Intenção de navegar
de ListaAlun...
Exercício 03: Transição de telas
●

Na ListaAlunosActivity, atualize o click da ListView:
Intenção de navegar
de ListaAlun...
Exercício 03: Transição de telas
●

Na ListaAlunosActivity, atualize o click da ListView:
Intenção de navegar
de ListaAlun...
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
Formular...
Exercício 04: Atualizar formulário
●

Adicione o método setAluno(Aluno) em FormularioHelper
Novo método da classe
Formular...
Exercício 04: Atualizar formulário
●

Adicione o método setAluno(Aluno) em FormularioHelper
Novo método da classe
Formular...
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
Lista...
Exercício 05: Dados na tela
●

Atualize o método FormularioActivity.onCreate():

Retorna a Intent que
chamou a Activity

R...
Exercício 05: Dados na tela
●

Atualize o método FormularioActivity.onCreate():
Recupera o objeto Aluno
enviado pela
Lista...
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
Cad...
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, c...
Exercício 07: Permissões de Acesso
●

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

●

<uses-sdk /> e <appication>

M.S...
Exercício 07: Permissões de Acesso
●

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

●

<uses-sdk /> e <appication>

M.S...
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 ...
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 t...
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:
Item que realiza uma
chamada t...
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:
Item que realiza uma
chamada t...
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:
Item que realiza uma
chamada t...
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

Item que realiza
o envio de S...
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

●

Inclua opções para ver Alu...
Exercício 08: Ações do ContextMenu
●

●

Altere o método onContextItemSelected da ListaAlunos:
Inclua opções para ver Alun...
Exercício 08: Ações do ContextMenu
●

●

Altere o método onContextItemSelected da ListaAlunos:
Inclua opções para ver Alun...
Exercício 08: Ações do ContextMenu
●

●

Altere o método onContextItemSelected da ListaAlunos:
Inclua opções para ver Alun...
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

●

Inclua opções para ver Alu...
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

●

Última opção: Enviar e-mai...
Exercício 08: Ações do ContextMenu
●

Altere o método onContextItemSelected da ListaAlunos:

●

Última opção: Enviar e-mai...
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 ...
Teste do envio de email

Escolha a Forma
de Envio

Tela da App de
Envio que foi
selecionada
Podem variar, de
acordo com as...
Teste de funcionalidades
TESTE AS OUTRAS
FUNCIONALIDADES
CRIADAS EM NOSSA
APP
Esta apresentação criada quarta feira, 27/11...
O que vem a seguir?
●

Câmera

●

Arquivos

●

Recuperar resultado de Activity chamada

●

LayoutInflater

●

Serviços de ...
Referências
●

www.caelum.com.br

●

d.android.com

●

●

LECHETA, Ricardo. Google Android, 3a edição,
Novatec, São Paulo,...
Capítulo 06: Trabalhando com Intents
Próxima SlideShare
Cargando en…5
×

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

4.396 visualizaciones

Publicado el

Neste capítulo discutimos:
1. como trocar de objetos java entre activities, usando Intents;
2. Edição do aluno selecionado - carregar os dados no formulário de cadastro;
3. Carga de campos baseadas em Helper;
4. O que temos no AndroidManifest.xml;
5. Solicitações de Permissões de acesso;
6. Apresentação das Intents implícitas;
7. Ligar para aluno, Enviar SMS, Navegar no Site,
Enviar Email, visualizar aluno no mapa

  • muito bom o material. Parabéns
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Esse "alunoParaSerAlterado" surgiu de onde?! como devo declara-lo?!
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

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

  1. 1. Capítulo 06: Trabalhando com Intents
  2. 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. 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. 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. 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. 6. Exercício 01: Aluno Serializável M.Sc. Márcio Palheta 6/59
  7. 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. 8. Exercício 02: AlunoDAO.alterar() ● Na classe AlunoDAO, inclua o método alterar(Aluno) M.Sc. Márcio Palheta 8/59
  9. 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. 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. 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. 12. Exercício 03: Transição de telas ● Na ListaAlunosActivity, atualize o click da ListView: M.Sc. Márcio Palheta 12/59
  13. 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. 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. 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. 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. 17. Exercício 04: Atualizar formulário ● Adicione o método setAluno(Aluno) em FormularioHelper M.Sc. Márcio Palheta 17/59
  18. 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. 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. 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. 21. Exercício 05: Dados na tela ● Atualize o método FormularioActivity.onCreate(): M.Sc. Márcio Palheta 21/59
  22. 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. 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. 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. 25. Exercício 06: Alterar ou Cadastrar? ● Atualize o click do botão salvar da FormularioActivity M.Sc. Márcio Palheta 25/59
  26. 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. 27. Rode a App M.Sc. Márcio Palheta 27/59
  28. 28. Rode a App Selecione um Aluno M.Sc. Márcio Palheta 28/59
  29. 29. Tela com dados do Aluno Rode a App Selecione um Aluno M.Sc. Márcio Palheta 29/59
  30. 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. 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. 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. 33. Exercício 07: Permissões de Acesso ● Inclua as seguintes permissões no AndroidManifest.xml: M.Sc. Márcio Palheta 33/59
  34. 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. 35. Exercício 08: Ações do ContextMenu ● Altere o método onContextItemSelected da ListaAlunos: M.Sc. Márcio Palheta 35/59
  36. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 48. Teste do envio de email M.Sc. Márcio Palheta 48/59
  49. 49. Teste do envio de email Click LONGO M.Sc. Márcio Palheta 49/59
  50. 50. Teste do envio de email M.Sc. Márcio Palheta 50/59
  51. 51. Teste do envio de email Selecione o item Enviar E-mail M.Sc. Márcio Palheta 51/59
  52. 52. Teste do envio de email M.Sc. Márcio Palheta 52/59
  53. 53. Teste do envio de email Escolha a Forma de Envio M.Sc. Márcio Palheta 53/59
  54. 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. 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. 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. 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. 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
  59. 59. Capítulo 06: Trabalhando com Intents

×