当前位置: 首页 > 知识库问答 >
问题:

在ActionMode上显示ActionMode

呼延宪
2023-03-14

我有一个列表活动,其中用户可以执行打开操作模式aB。用户还可以打开操作模式A,然后在其顶部打开B

动作模式A实际上是搜索动作模式,用户可以从中选择打开动作模式B的结果(如果这有助于理解的话)。

共有1个答案

尚嘉勋
2023-03-14

我认为我通过从动作模式B的onDestroyActionMode中的postDelayed()达到了所需的行为。这不是一个很好的解决方案,但它是有效的。

我的代码段:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        listView.onItemClickListener = AdapterView.OnItemClickListener { adapterView, view, p2, p3 ->
            startActionModeA()
            true
        }
    }

    var actionModeA: ActionMode? = null

    val actionModeCallbackA = object : ActionMode.Callback {
        override fun onActionItemClicked(mode: ActionMode?, p1: MenuItem?): Boolean {
            Log.wtf("ACTION MODE", "onActionItemClicked")
            actionModeB = startActionMode(actionModeCallbackB)
            return true
        }

        override fun onCreateActionMode(mode: ActionMode?, menu: Menu?): Boolean {
            Log.wtf("ACTION MODE", "onCreateActionMode")
            val inflater = mode?.getMenuInflater()
            inflater?.inflate(R.menu.context_menu, menu)
            return true
        }

        override fun onPrepareActionMode(p0: ActionMode?, p1: Menu?): Boolean {
            Log.wtf("ACTION MODE", "onPrepareActionMode")
            return false
        }

        override fun onDestroyActionMode(p0: ActionMode?) {
            Log.wtf("ACTION MODE", "onDestroyActionMode")
            actionModeA = null
        }


    }
    var actionModeB: ActionMode? = null

    val actionModeCallbackB = object : ActionMode.Callback {
        override fun onActionItemClicked(mode: ActionMode?, p1: MenuItem?): Boolean {
            Log.wtf("ACTION MODE 2", "onActionItemClicked")
            return true
        }

        override fun onCreateActionMode(mode: ActionMode?, menu: Menu?): Boolean {
            Log.wtf("ACTION MODE 2", "onCreateActionMode")
            val inflater = mode?.getMenuInflater()
            inflater?.inflate(R.menu.context_menu2, menu)
            return true
        }

        override fun onPrepareActionMode(p0: ActionMode?, p1: Menu?): Boolean {
            Log.wtf("ACTION MODE 2", "onPrepareActionMode")
            return false
        }

        override fun onDestroyActionMode(mode: ActionMode?) {
            Log.wtf("ACTION MODE 2", "onDestroyActionMode")
            actionModeB = null
            listView.postDelayed({
                startActionModeA()
            }, 100)
        }
    }

    private fun startActionModeA() {
        actionModeA = startActionMode(actionModeCallbackA)
    }
 类似资料:
  • 我尝试在我的主题中设置以下内容,但似乎并没有改变什么:

  • 问题内容: 我正在寻找一种将 javadocs 从我的开源项目(在 Eclipse中 生成)转换为 GitHub MarkDown的方法 ,或者想出一些其他简单的解决方案在 GitHub上 显示我的文档(避开简单地添加目录)。有一个简单的解决方案吗?我可以简单地将 GitHub 指向我的目录吗?还有更优雅的东西吗?我一直在 Google 上 大放异彩 。 问题答案: 我认为用MarkDown制作一

  • 我有一个视图,作为另一个视图之上的子视图/模式,例如子视图/模式应该是透明的,添加到子视图中的任何组件都应该是可见的。问题是,我有一个子视图显示黑色背景,而不是有清晰的颜色。我试图将制作成清晰的颜色,而不是黑色背景。有人知道它怎么了吗?如有任何建议,我们将不胜感激。 FirstViewController. m 第二视图控制器。M 解决:我修复了问题。它在iPhone和iPad上都运行良好。模态视

  • 我有一个扩展JFrame的类。它使用以下代码将180个图像加载到数组中 更新:我尝试使用一个JLabel而不是我的ImagePanel类。JLabel似乎也有同样的问题。当我使用JPEG时,它会显示,但当我使用PNG时,它什么也不显示。

  • 我不知道如何解决这个问题,我似乎找不到一个会导致它失败的问题。下面是GUI代码的其余部分。它很长。将jtable添加到jpanel从第152行开始。

  • 谁能引导我过去吗?也许我的效用不好?