上下文操作模式自定义行为

时间:2012-10-04 15:13:23

标签: android android-actionbar actionbarsherlock contextual-action-bar

在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}}?

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>