Как закрыть контекстное меню при переключении на другой кадр?

У меня есть приложение с двумя фрагментами, каждый фрагмент имеет список. При выборе элементов из списка контекстное меню появляется автоматически, я обрабатываю события и так далее... пока все хорошо, но моя проблема в том, что когда я переключаюсь на другой фрагмент, контекстное меню остается видимым, поэтому пользователь может запутаться, думая, что это контекстное меню из текущего видимого списка.

я пытался позвонить

getActivity().closeContextMenu();

при переключении между фрагментами, но это не работает.

Любое предложение будет действительно оценено.

Благодарю вас!


person jmhostalet    schedule 19.01.2013    source источник
comment
если два фрагмента в одном и том же действии, то только во втором фрагменте onCreate проверьте, открыто ли контекстное меню, а затем закрыто.   -  person Bhavdip Sagar    schedule 19.01.2013


Ответы (1)


Я нашел решение:

Я использую ListView.CHOICE_MODE_MULTIPLE_MODAL для множественного выбора, в MultiChoiceModeListener я сохраняю режим действия для последующего использования:

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();
}
person jmhostalet    schedule 21.01.2013