如何在Honeycomb上以编程方式关闭ActionMode菜单?

在我的应用程序中有一个ListFragment,列表中的每个项目都包含一个checkbox。 只要用户点击其中一个checkbox,应用程序就会启动一个ActionMode上下文菜单。 但是我希望应用程序在单击另一个组件时关闭ActionMode菜单。 我尝试了Fragment#closeContextMenu()但没有成功。

任何想法我怎么能做到这一点?

每当你创建/启动ActionMode Create by

 mMode = startActionMode(....); 

要关闭它,请使用以下语法

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

Kotlin代码

按下菜单项后,使用ActionMode.Callback完成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)