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
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 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 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á. :-) 5/59
Exercício 01: Aluno Serializável 6/59
Exercício 01: Aluno Serializável Para transitar entre telas, a classe Aluno deve implementar Serializable 7/59
Exercício 02: AlunoDAO.alterar() Na classe AlunoDAO, inclua o método alterar(aluno) 8/59
Exercício 02: AlunoDAO.alterar() Valores que serão Na classe AlunoDAO, inclua o método alterar(aluno) enviados para o BD 9/59
Exercício 02: AlunoDAO.alterar() Valores que serão Na classe AlunoDAO, inclua o método alterar(aluno) enviados para o BD Valores dos parâmetros da cláusula WHERE 10/59
Exercício 02: AlunoDAO.alterar() Valores que serão Na classe AlunoDAO, inclua o método alterar(aluno) enviados para o BD Valores dos parâmetros da cláusula WHERE Atualização dos dados do Aluno 11/59
Exercício 03: Transição de telas Na ListaAlunosActivity, atualize o click da ListView: 12/59
Exercício 03: Transição de telas Na ListaAlunosActivity, atualize o click da ListView: Intenção de navegar de ListaAlunosActivity para FormularioActivity 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 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 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 16/59
Exercício 04: Atualizar formulário Adicione o método setaluno(aluno) em FormularioHelper 17/59
Exercício 04: Atualizar formulário Adicione o método setaluno(aluno) em FormularioHelper Novo método da classe FormularioHelper 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 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 20/59
Exercício 05: Dados na tela Atualize o método FormularioActivity.onCreate(): 21/59
Exercício 05: Dados na tela Atualize o método FormularioActivity.onCreate(): Recupera o objeto Aluno enviado pela ListaAlunosActivity 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 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 24/59
Exercício 06: Alterar ou Cadastrar? Atualize o click do botão salvar da FormularioActivity 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 26/59
Rode a App 27/59
Rode a App Selecione um Aluno 28/59
Tela com dados do Aluno Rode a App Selecione um Aluno 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"/> 30/59
Exercício 07: Permissões de Acesso Inclua as solicitações de Acesso entre as tags: <uses-sdk /> e <appication> 31/59
Exercício 07: Permissões de Acesso Inclua as solicitações de Acesso entre as tags: <uses-sdk /> e <appication> 32/59
Exercício 07: Permissões de Acesso Inclua as seguintes permissões no AndroidManifest.xml: 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 34/59
Exercício 08: Ações do ContextMenu Altere o método oncontextitemselected da ListaAlunos: 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 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 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 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 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 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 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 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 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 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 45/59
Exercício 08: Ações do ContextMenu Altere o método oncontextitemselected da ListaAlunos: Última opção: Enviar e-mail para aluno 46/59
Exercício 08: Ações do ContextMenu Altere o método oncontextitemselected da ListaAlunos: Última opção: Enviar e-mail para aluno 47/59
Teste do envio de email 48/59
Teste do envio de email Click LONGO 49/59
Teste do envio de email 50/59
Teste do envio de email Selecione o item Enviar E-mail 51/59
Teste do envio de email 52/59
Teste do envio de email Escolha a Forma de Envio 53/59
Teste do envio de email Escolha a Forma de Envio Podem variar, de acordo com as Apps Instaladas no Device 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 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-PRM.Sc. pormárcio 2 x 0,Palheta 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 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 58/59
Capítulo 06: Trabalhando com Intents