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)