6

在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

+0

監視CAB的當前狀態(打開/未打開)以及列表中選定項目的數量,並且您可以確定使用哪種方法關閉CAB。 – Luksprog

+2

Alexiosdev回答了類似的問題[這裏] [1]。 [1]:http://stackoverflow.com/a/14090730/836413 –

回答

2

解決此問題的一種方法是使用主題從您創建的操作模式中隱藏完成按鈕。然後,您只需將您自己的完成按鈕添加到您創建的每個操作模式。很明顯,你可以跟蹤是否因爲你完成按鈕被擊中或後退按鈕而被調用。這是一個主題,您可以將其應用於您需要完成的活動。

<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>