可能的重复:
如何调用 ActionBar 的类似 ContextMenu 的行为?
ActionMode中如何识别Done按钮是否被点击

如何正确处理动作模式的“完成”按钮?

Action mode done button

我在操作模式下对对象执行一些操作,我想通过单击此按钮来保存结果 - 例如“保存并退出”。如何调度此按钮上的按键?

我看到的唯一方法是用标志覆盖 onDestroyActionMode(ActionMode mode) 方法,在dispatchKeyEvent(KeyEvent event) 中触发来处理是否是由“后退”按钮按下引起的。

日志猫:

按下“完成”

10-03 14:31:58.211: D/DESTROY(967): onDestroyActionMode  

按下“返回”键

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

但这看起来并不是一个好的做法。有什么“好的”解决方案吗?

更新:我知道如何调用操作模式并处理 ActionMode.Callback 中的操作项事件,但是如何捕获“完成”按钮按下来修改其行为? “后退”按钮和“完成”按钮都会导致 ActionMode.CallbackonDestroyActionMode() 称呼。

有帮助吗?

解决方案

这种模式称为 CAB(上下文操作栏)。请查看 菜单指南 并在官网搜索CAB: 使用上下文操作模式

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top