【问题标题】:Have OnItemLongClickListener invoked even when in action mode CHOICE_MODE_MULTIPLE_MODAL即使在操作模式 CHOICE_MODE_MULTIPLE_MODAL 下也调用 OnItemLongClickListener
【发布时间】:2014-02-20 22:58:03
【问题描述】:

我在列表视图中注册了一个 OnItemLongClickListener,但是在操作模式下,不会调用侦听器。

这是预期的行为,如 perfromLongPress 方法中所示。

任何人都知道如何让 lonk 点击监听器被调用?

我想要这种行为的原因是一次长按选择多个文件。有关示例,请参阅 QuickPic 应用程序。

【问题讨论】:

  • 有没有想过这个问题?我以前都是手工完成的,效果很好,但我一直在检查这部分代码,MultiChoiceMode 的好处很难被忽略。
  • 我只是尝试创建一个自定义 GridView 并修改了 longPress 处理,但不幸的是无法访问 actionMode 状态 (mChoiceActionMode),这显然是处理逻辑所必需的。

标签: android android-actionmode onitemlongclicklistener


【解决方案1】:

我认为您应该使用已注册的 MultiChoiceModeListener 并覆盖其方法:

        @Override
        public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
        }

        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        // this is where you will inflate the CAB just in case
            return true;
        }

        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            return false;
        }

        @Override
        public void onDestroyActionMode(ActionMode mode) {

        }

【讨论】:

  • 我不明白这如何回答我的问题。我已经定义了 MultiChoiceModeListener 并且 OnItemLongClickListener 没有被调用。
  • 你能提供一些代码吗?如果你已经这样做了,它应该被调用
  • 我会在您解释为什么您认为您的答案回答了我的问题后立即添加代码。请在您的答案中解释它而不是 cmets。
  • 好吧,kilka 先生,对不起,我首先误解了你的问题……看看这个miximum.fr/… 并将 onitemClick 更改为 onLongClick 也许会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-27
  • 2013-07-14
  • 2014-04-14
  • 2016-08-08
  • 1970-01-01
相关资源
最近更新 更多