Post on 11-Jun-2015
description
Capítulo 05: Menus de Contexto
M.Sc. Márcio Palheta
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/marciopalheta
M.Sc. Márcio Palheta
3/41
Agenda
● Completando o caso de uso
● Menu de Contexto
● Exclusão de alunos
● Atualizações da camada de modelo
● Confirmação de exclusão
M.Sc. Márcio Palheta
4/41
Completando o sistema
● Para completar o nosso cadastro de alunos, precisamos implementar as rotinas de:
– Alterar; e
– Excluir Alunos● Quando queremos alterar um registro, é comum
utilizarmos um click curto, indicando sua seleção
● Já na exclusão, é comum utilizarmos um click longo, que abre um pequeno menu, onde selecionemos uma ação
M.Sc. Márcio Palheta
5/41
Menu de contexto - ContextMenu
● No Android, temos o ContextMenu, que abre um menu exclusivo para um item da lista
● Para avisar ao Android que a ListView possui um menu de contexto, temos que marcá-la: registerForContextMenu()
● Vamos criar um arquivo .xml para descrever os itens que devem ser exibidos no ContextMenu
● No método onCreateContextMenu() da Activity, podemos usar um Inflater para inflar as opções do menu
● Opções: Ligar, Enviar SMS, Achar no Mapa, Navegar no site, Enviar E-mail e Deletar
M.Sc. Márcio Palheta
6/41
Exercício 01: Atualização das Strings
● Inclua novas chaves em /res/values/strings.xml
M.Sc. Márcio Palheta
7/41
Exercício 01: Atualização das Strings
● Inclua novas chaves em /res/values/strings.xml
M.Sc. Márcio Palheta
8/41
Exercício 02: Menu de Contexto
● Vamos criar o nosso Menu de Contexto
● Clique na pasta /res/menu
● Digite Ctrl+N
● Selecione a opção Android / Android XML File
● Clique em Next
M.Sc. Márcio Palheta
9/41
Exercício 02: Menu de Contexto
● Informe o nome do novo arquivo: menu_contexto
● Confirme os dados do projeto e elemento Root
● Clique em Finish
M.Sc. Márcio Palheta
10/41
Exercício 02: Menu de Contexto
M.Sc. Márcio Palheta
11/41
Exercício 02: Menu de ContextoDefinição do Menu
M.Sc. Márcio Palheta
12/41
Exercício 02: Menu de Contexto
Definição deItens do Menu
Definição do Menu
M.Sc. Márcio Palheta
13/41
Exercício 03: AlunoDAO.deletar()
● Vamos incluir na classe AlunoDAO o método para exclusão de Alunos:
M.Sc. Márcio Palheta
14/41
Exercício 03: AlunoDAO.deletar()
● Vamos incluir na classe AlunoDAO o método para exclusão de Alunos:
O método recebeo objeto Alunoa ser excluído
M.Sc. Márcio Palheta
15/41
Exercício 03: AlunoDAO.deletar()
● Vamos incluir na classe AlunoDAO o método para exclusão de Alunos:
O método recebeo objeto Alunoa ser excluído Vetor com valores
usados para substituir “?”da instrução SQL
M.Sc. Márcio Palheta
16/41
Exercício 03: AlunoDAO.deletar()
● Vamos incluir na classe AlunoDAO o método para exclusão de Alunos:
O método recebeo objeto Alunoa ser excluído Vetor com valores
usados para substituir “?”da instrução SQL
Condiçõespara exclusão
M.Sc. Márcio Palheta
17/41
Exercício 03: AlunoDAO.deletar()
● Vamos incluir na classe AlunoDAO o método para exclusão de Alunos:
O método recebeo objeto Alunoa ser excluído Vetor com valores
usados para substituir “?”da instrução SQL
Condiçõespara exclusão
Valores das“?”
M.Sc. Márcio Palheta
18/41
Exercício 04: Novo atributo
● Na classe ListaAlunosActivity, inclua um atributo para marcar o aluno selecionado no Click Longo da ListView
M.Sc. Márcio Palheta
19/41
Exercício 04: Novo atributo
● Na classe ListaAlunosActivity, inclua um atributo para marcar o aluno selecionado no Click Longo da ListView
M.Sc. Márcio Palheta
20/41
Exercício 05: Atualização do onCreate
● Atualize o método ListaAlunosActivity.onCreate():
M.Sc. Márcio Palheta
21/41
Exercício 05: Atualização do onCreate
● Atualize o método ListaAlunosActivity.onCreate():
Registra a ListViewpara o Menu de
Contexto
M.Sc. Márcio Palheta
22/41
Exercício 05: Atualização do onCreate
● Atualize o método ListaAlunosActivity.onCreate():
Registra a ListViewpara o Menu de
Contexto
Guarda referênciado Aluno clicado
M.Sc. Márcio Palheta
23/41
Exercício 05: Atualização do onCreate
● Atualize o método ListaAlunosActivity.onCreate():
Registra a ListViewpara o Menu de
Contexto
Guarda referênciado Aluno clicado
Não consome o Click Curto, paraque o ContextMenu seja exibido
M.Sc. Márcio Palheta
24/41
Exercício 06: Confirmação de exclusão
M.Sc. Márcio Palheta
25/41
Exercício 06: Confirmação de exclusãoMétodo de exclusão da
classe ListaAlunosActivity
M.Sc. Márcio Palheta
26/41
Exercício 06: Confirmação de exclusãoMétodo de exclusão da
classe ListaAlunosActivity
Botão de confirmação
M.Sc. Márcio Palheta
27/41
Exercício 06: Confirmação de exclusãoMétodo de exclusão da
classe ListaAlunosActivity
Botão de confirmação
Exclusão doAluno do BD
M.Sc. Márcio Palheta
28/41
Exercício 07: ContextMenu da Activity
M.Sc. Márcio Palheta
29/41
Exercício 07: ContextMenu da ActivityMétodo que cria o Menu de Contexto
M.Sc. Márcio Palheta
30/41
Exercício 07: ContextMenu da Activity
Infla o XML com itens do menu
Método que cria o Menu de Contexto
M.Sc. Márcio Palheta
31/41
Exercício 07: ContextMenu da Activity
Infla o XML com itens do menu
Método que cria o Menu de Contexto
Método que capturao click de um item
M.Sc. Márcio Palheta
32/41
Exercício 07: ContextMenu da Activity
Infla o XML com itens do menu
Método que cria o Menu de Contexto
Método que capturao click de um item
Chamada da Confirmação de
exclusão
M.Sc. Márcio Palheta
33/41
Execute a App
M.Sc. Márcio Palheta
34/41
Execute a App
M.Sc. Márcio Palheta
35/41
Execute a App
M.Sc. Márcio Palheta
36/41
Execute a App
M.Sc. Márcio Palheta
37/41
Execute a App
M.Sc. Márcio Palheta
38/41
Resultado da exclusão
M.Sc. Márcio Palheta
39/41
O que vem a seguir?
● Compartilhar informações entre Activities – Intents
● Intent implicita – Chamada telefônica para um aluno
● Envio e Recebimento de SMS
● Navegar em site do Aluno e Envio de email
● Câmera e arquivos
● LayoutInflater
● Serviços de background
● Integração via JSON
M.Sc. Márcio Palheta
40/41
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
Capítulo 05: Menus de Contexto