Como lidar corretamente com o botão “concluído” do modo de ação?[duplicado]
-
13-12-2019 - |
Pergunta
Possível duplicata:
Como invocar o comportamento semelhante ao ContextMenu do ActionBar?
Como reconhecer se o botão Concluído foi clicado no ActionMode
Como lidar corretamente com o botão "concluído" do modo de ação?
Realizo algumas operações em um objeto no modo de ação e quero salvar o resultado clicando neste botão - como "salvar e sair".Como posso despachar o pressionamento de tecla neste botão?
A única maneira que vejo é substituir o método onDestroyActionMode(ActionMode mode) por sinalizadores, acionados em dispatchKeyEvent(KeyEvent event) para lidar se foi causado pelo pressionamento do botão "voltar".
Logcat:
"Concluído" pressionado
10-03 14:31:58.211: D/DESTROY(967): onDestroyActionMode
"Voltar" pressionado
10-03 14:32:01.771: D/DISPATCH(967): Action: 0/n Keykode: 4
10-03 14:32:01.911: D/DISPATCH(967): Action: 1/n Keykode: 4
10-03 14:32:01.911: D/DESTROY(967): onDestroyActionMode
Mas não parece uma boa prática.Existe alguma solução "legal"?
Atualização:Eu sei como invocar o modo de ação e lidar com eventos de itens de ação em ActionMode.Callback, mas como posso pressionar o botão "Concluído" para modificar seu comportamento? O botão "Voltar" e o botão "Concluído" levam a ActionMode.Callback
de onDestroyActionMode()
chamar.
Solução
Esse padrão é denominado CAB (Contextual Action Bar).Por favor, dê uma olhada no Guia de cardápio e pesquise CAB no site oficial: Usando o modo de ação contextual