In my application there is a ListFragment where each item from the list contains a checkbox. Whenever the user clicks on one of those checkboxes the app starts an ActionMode context menu. But I want the application to close the ActionMode menu when clicking on another component. I tried Fragment#closeContextMenu()
without success.
Any ideas how can I accomplish that?
Whenever you are creating/starting ActionMode Create by
mMode = startActionMode(....);
To Dismiss it use following Syntax
if (mMode != null) { mMode.finish(); }
Kotlin code
Use ActionMode.Callback to finish ActionMode
after menu item pressed
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With