在android开发人员的menu guide中提到:
当用户取消选择所有项目,按BACK按钮或选择栏左侧的完成操作时,操作模式被禁用并且上下文操作栏消失。
从技术上讲,这意味着mActionMode.finish()
,BACK
按钮按下或Done
操作选择调用ActionMode.Callback onDestroyActionMode()
方法。
我的问题是当用户选择Toast("Action mode exit by Done select")
时如何执行自定义操作(例如Done
),以及当用户按{{Toast("Action mode exit by BACK")
时执行其他操作(例如BACK
) 1}}?
答案 0 :(得分:2)
您可以采取一种方法来解决此问题,即使用主题隐藏您创建的操作模式中的完成按钮。然后,您只需将自己的“完成”按钮添加到您创建的每个操作模式中。显然,您可以跟踪onDestroyActionMode
是否因为您点击完成按钮或后退按钮而被调用。这是一个主题,您可以应用于完成此操作所需的活动。
<style name="HideActionModeCloseTheme" parent="@android:style/Theme.DeviceDefault">
<item name="android:actionModeCloseButtonStyle">@style/NoCloseButton</item>
</style>
<style name="NoCloseButton" parent="@android:style/Widget.DeviceDefault.ActionButton.CloseMode">
<item name="android:visibility">invisible</item>
</style>