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

4,233 views

Published on

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

2 Comments
10 Likes
Statistics
Notes
  • muito bom o material. Parabéns
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Esse "alunoParaSerAlterado" surgiu de onde?! como devo declara-lo?!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
4,233
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
794
Comments
2
Likes
10
Embeds 0
No embeds

No notes for slide

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

×