6

En androide desarrollador de menu guide se menciona que:modo de acción contextual

El modo de acción se desactiva y la barra de acción contextual desaparece cuando el usuario anula la selección de todos los elementos, presiona el botón BACK, o selecciona el Done acción en el lado izquierdo de la barra.

Técnicamente, esto significa que mActionMode.finish(), el botón BACK prensa, o la selección Done acción llamada ActionMode.Callback onDestroyActionMode() método.

Mi pregunta es cómo llevar a cabo una acción personalizada (por ejemplo Toast("Action mode exit by Done select")) cuando el usuario selecciona Done, y otra acción (por ej. Toast("Action mode exit by BACK")) cuando el usuario pulse BACK?

+0

Controle el estado actual del CAB (abierto/no abierto) y el número de elementos seleccionados en la lista y podrá determinar qué método se utilizó para cerrar el CAB. – Luksprog

+2

Alexiosdev respondió a una pregunta similar [aquí] [1]. [1]: http://stackoverflow.com/a/14090730/836413 –

Respuesta

2

Un enfoque que puede tomar para resolver este problema es usar un tema para ocultar el botón hecho de los modos de acción que cree. Luego, simplemente agrega su propio botón Hecho a cada modo de acción que cree. Obviamente, entonces puede realizar un seguimiento si se llamó a onDestroyActionMode debido a que se presionó el botón o al botón Atrás. Aquí hay un tema que puede aplicar a las actividades que necesita para lograr esto.

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