【发布时间】:2013-08-17 18:58:45
【问题描述】:
要在 Android Honeycomb 及更高版本上使用上下文操作栏,我通常会检查 SDK_INT 是否为 11 或更高版本,然后继续使用 mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
现在,我正在尝试使用 ActionBarSherlock 将其移植到旧设备上。现在我使用CHOICE_MODE_MULTIPLE 而不是CHOICE_MODE_MULTIPLE_MODAL,在OnItemLongClickListener 内部,我设法调用getSherlockActivity().startActionMode(myActionModeCallback);
问题是,当我第一次长按 ListView 中的一个项目时,上下文操作栏会正确显示。
但是当我单击另一个 ListView 项目时,该项目被选中,然后它的单击侦听器被触发。 (我使用那个监听器,所以当用户点击一个项目时,它会打开一个新的活动,用户可以在其中编辑项目,所以在这种情况下,项目被选中,这个新活动立即开始,并破坏了我的上下文操作栏)
这不应该发生,但我想我做错了什么。
我曾考虑将OnListItemClick 侦听器设置为null,直到我调用ActionMode.finish(),我可以将其恢复为以前的侦听器,但我相信必须有一种更清洁的方法来做到这一点。
【问题讨论】:
-
@YourCommonSense 取消删除它
标签: android actionbarsherlock contextmenu contextual-action-bar