切换到另一帧时如何关闭上下文菜单?

时间:2013-01-19 11:05:15

标签: android contextmenu android-listfragment

我有一个带有两个片段的应用,每个片段都有一个列表视图。当从列表中选择元素时,上下文菜单会自动出现,我处理事件......到目前为止一直很好,但我的问题是当我更改为其他片段时,上下文菜单保持可见,因此用户可能会感到困惑,认为它是当前可见列表视图中的上下文菜单。

我试过调用

getActivity().closeContextMenu();

在片段之间切换但不起作用。

任何建议都会非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

我正在使用ListView.CHOICE_MODE_MULTIPLE_MODAL进行多项选择,在MultiChoiceModeListener中我保存了actionmode供以后使用:

public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
   // item selected
   Log.d("FilesFragment.ContextMenu", "onItemCheckedStateChanged(); position: " + position);
   actionmode = mode; // <- I save the action mode for later use
   listadapter.getItem(position).setSelected(checked);
}

然后,当我检测到用户想要更改为另一个标签框时,我调用

if (actionmode!=null){
  actionmode.finish();
}