tutorial studio puntos menus emergente developer custom create creacion bar android android-fragments android-3.0-honeycomb contextual-action-bar

android - studio - ¿Cómo cerrar un menú de ActionMode programmatically en Honeycomb?



menu 3 puntos android studio (2)

Siempre que esté creando / iniciando Modo de acción Crear por

mMode = startActionMode(....);

Para descartarlo use la siguiente sintaxis

if (mMode != null) { mMode.finish(); }

En mi aplicación hay un ListFragment donde cada elemento de la lista contiene una casilla de verificación. Cada vez que el usuario hace clic en una de esas casillas, la aplicación inicia un menú contextual de ActionMode. Pero quiero que la aplicación cierre el menú de ActionMode al hacer clic en otro componente. Fragment#closeContextMenu() sin éxito.

¿Alguna idea de cómo puedo lograr eso?


Código Kotlin

Use ActionMode.Callback para finalizar ActionMode después de presionar el elemento del menú

private val actionModeCallbacks = object : ActionMode.Callback { override fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean { mode.menuInflater.inflate(R.menu.menu_action_mode, menu) return true } override fun onPrepareActionMode(mode: ActionMode, menu: Menu): Boolean { return false } override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean { when (item.itemId) { R.id.menu_item -> { mode.finish() // after click of menu item close action mode return true } } return false } override fun onDestroyActionMode(mode: ActionMode) { } }

startSupportActionMode

(activity as AppCompatActivity).startSupportActionMode(actionModeCallbacks)