Как закрыть меню ActionMode программно на Honeycomb?

в моем приложении есть ListFragment, где каждый элемент в списке содержит флажок. Когда пользователь нажимает на один из этих флажков приложение запускает контекстное меню ActionMode. Но я хочу, чтобы приложение, чтобы закрыть меню ActionMode при нажатии на другой компонент. Я пытался!--0--> без успеха.

любые идеи, как я могу это сделать?

2 ответов


всякий раз, когда вы создаете/запускаете ActionMode Create by

mMode = startActionMode(....);

чтобы отклонить его, используйте следующий синтаксис

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

Котлин код

использовать ActionMode.Отзвонились закончить ActionMode после нажатия пункта меню

 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)