Este capítulo descreve como implementar menus de contexto em uma aplicação Android. São apresentados os passos para:
1. Criar um arquivo XML para definir as opções do menu de contexto;
2. Registrar a ListView para exibir o menu de contexto;
3. Implementar o método onCreateContextMenu() para inflar as opções do menu;
4. Adicionar um método para capturar o clique em um item do menu e confirmar a exclusão de um aluno.
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
●
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
3/41
4. 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
4/41
5. 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
5/41
6. Exercício 01: Atualização das Strings
●
Inclua novas chaves em /res/values/strings.xml
M.Sc. Márcio Palheta
6/41
7. Exercício 01: Atualização das Strings
●
Inclua novas chaves em /res/values/strings.xml
M.Sc. Márcio Palheta
7/41
8. 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
8/41
9. 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
9/41
14. Exercício 03: AlunoDAO.deletar()
●
Vamos incluir na classe AlunoDAO o método para
exclusão de Alunos:
O método recebe
o objeto Aluno
a ser excluído
M.Sc. Márcio Palheta
14/41
15. Exercício 03: AlunoDAO.deletar()
●
Vamos incluir na classe AlunoDAO o método para
exclusão de Alunos:
O método recebe
o objeto Aluno
a ser excluído
Vetor com valores
usados para substituir “?”
da instrução SQL
M.Sc. Márcio Palheta
15/41
16. Exercício 03: AlunoDAO.deletar()
●
Vamos incluir na classe AlunoDAO o método para
exclusão de Alunos:
O método recebe
o objeto Aluno
a ser excluído
Vetor com valores
usados para substituir “?”
da instrução SQL
Condições
para
M.Sc. Márcio Palheta exclusão
16/41
17. Exercício 03: AlunoDAO.deletar()
●
Vamos incluir na classe AlunoDAO o método para
exclusão de Alunos:
O método recebe
o objeto Aluno
a ser excluído
Vetor com valores
usados para substituir “?”
da instrução SQL
Condições
para
M.Sc. Márcio Palheta exclusão
Valores das
“?”
17/41
18. 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
18/41
19. 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
20. Exercício 05: Atualização do onCreate
●
Atualize o método ListaAlunosActivity.onCreate():
M.Sc. Márcio Palheta
20/41
21. Exercício 05: Atualização do onCreate
●
Atualize o método ListaAlunosActivity.onCreate():
Registra a ListView
para o Menu de
Contexto
M.Sc. Márcio Palheta
21/41
22. Exercício 05: Atualização do onCreate
●
Atualize o método ListaAlunosActivity.onCreate():
Registra a ListView
para o Menu de
Contexto
Guarda referência
do Aluno clicado
M.Sc. Márcio Palheta
22/41
23. Exercício 05: Atualização do onCreate
●
Atualize o método ListaAlunosActivity.onCreate():
Registra a ListView
para o Menu de
Contexto
Guarda referência
do Aluno clicado
Não consome o Click Curto, para
seja exibido
M.Sc. MárcioContextMenu
que o Palheta
23/41
25. Método de exclusão da
classe ListaAlunosActivity
Exercício 06: Confirmação de exclusão
M.Sc. Márcio Palheta
25/41
26. Método de exclusão da
classe ListaAlunosActivity
Exercício 06: Confirmação de exclusão
Botão de
confirmação
M.Sc. Márcio Palheta
26/41
27. Método de exclusão da
classe ListaAlunosActivity
Exercício 06: Confirmação de exclusão
Botão de
confirmação
Exclusão do
Aluno do BD
M.Sc. Márcio Palheta
27/41
29. Método que cria o
Menu de Contexto
Exercício 07: ContextMenu da Activity
M.Sc. Márcio Palheta
29/41
30. Método que cria o
Menu de Contexto
Exercício 07: ContextMenu da Activity
Infla o XML com
itens do menu
M.Sc. Márcio Palheta
30/41
31. Método que cria o
Menu de Contexto
Exercício 07: ContextMenu da Activity
Infla o XML com
itens do menu
Método que captura
o click de um item
M.Sc. Márcio Palheta
31/41
32. Método que cria o
Menu de Contexto
Exercício 07: ContextMenu da Activity
Infla o XML com
itens do menu
Método que captura
o click de um item
Chamada da
Confirmação de
exclusão
M.Sc. Márcio Palheta
32/41
39. 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
39/41