首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionMode.Callback的实现

ActionMode.Callback的实现
EN

Stack Overflow用户
提问于 2018-03-02 15:31:16
回答 1查看 4.1K关注 0票数 5

我有一个ActionMode的实现来显示一个RecyclerView中的多个选择项目的数量。

我想知道actionMode中的后退按钮何时被点击,以便相应地重置recyclerView,但是在实现ActionMode.Callback时,我注意到每当ActionMode被更新到actionMode?.setTitle($selectedItems.size)时,就调用onDestroyActionMode,这使得不可能重置recyclerView --删除选定的项目,删除重叠颜色,并通知数据集更改后的回收视图。

这是我的回音

代码语言:javascript
复制
inner class ActionModeCallback : ActionMode.Callback {
    override fun onActionItemClicked(mode: ActionMode?, item: MenuItem?): Boolean {
        when (item?.getItemId()) {
            R.id.action_delete -> {
                myAdapter?.deleteSelectedIds()
                actionMode?.setTitle("") //remove item count from action mode.
                actionMode?.finish()
                return true
            }
        }
        return false
    }

    override fun onCreateActionMode(mode: ActionMode?, menu: Menu?): Boolean {
        val inflater = mode?.getMenuInflater()
        inflater?.inflate(R.menu.action_mode_menu, menu)
        return true
    }

    override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?): Boolean {
        menu?.findItem(R.id.action_delete)?.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
        return true
    }

    override fun onDestroyActionMode(mode: ActionMode?) {
        Log.d(TAG, "onDestroyActionMode Called")
        //myAdapter?.selectedIds?.clear()
        //myAdapter?.notifyDataSetChanged()
        actionMode = null
    }
}

我如何知道ActionMode回键何时被点击?完整的源代码在这里=>https://github.com/Edge-Developer/RecyclerViewMultiSelectExample

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-02 16:38:15

上帝啊。这是我的错,每次选择一个项目(通过MainActivity上的一个接口)时,我都会启动一个新的MainActivity,而不是在启动一个新的项目之前检查它是否已经启动。

这是我的密码

代码语言:javascript
复制
actionMode = startActionMode(ActionModeCallback())

以下是更新的代码

代码语言:javascript
复制
if (actionMode == null) actionMode = startActionMode(ActionModeCallback())

现在,在解散onDestroyActionMode之后,只调用actionMode一次!

您可以检查github回购是如何实现的

这个问题是在在recyclerView上实现多选择时所面临的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49072285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档