如何在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)