6

在 android developer's menu guide中提到:

当用户取消选择所有项目、按下 BACK 按钮或选择栏左侧的 Done 操作时,操作模式被禁用并且上下文操作栏消失。

从技术上讲,它意味着mActionMode.finish()BACK按钮按下,或Done动作选择调用ActionMode.Callback onDestroyActionMode()方法。

Toast("Action mode exit by Done select")我的问题是如何在用户选择时执行自定义操作(例如),以及在用户按下时执行Done另一个操作(例如) ?Toast("Action mode exit by BACK")BACK

4

1 回答 1

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>
于 2013-04-18T13:44:15.327 回答