在Android开发者的菜单指南中提到的是:
的动作模式被禁用,并且当用户取消选择所有项,按下后退按钮,或选择在杆的左侧的动作完成的上下文动作栏消失。
从技术上讲,这意味着mActionMode.finish()
中, BACK
按钮按压,或Done
动作选择调用ActionMode.Callback onDestroyActionMode()
方法。
我的问题是如何(例如执行自定义动作Toast("Action mode exit by Done select")
)当用户选择Done
,而另一个操作(前。 Toast("Action mode exit by BACK")
时,用户按下BACK
?
你可以采取的解决这个问题的一种方法是使用一个主题来隐藏您创建的行动模式完成按钮。 然后,你只需添加自己的完成按钮,您创建的每一个动作模式。 显然,那么你就可以跟踪是否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>