I ' расширяет FragmentActivity class.
Для onCreateContextMenu () это работает очень хорошо. Контекстное меню создается из файла ресурсов и немного изменяется в зависимости от выбранного элемента (который основан на listView ... даже если фрагмент не является ListFragment).
Проблема возникает, когда выбран элемент контекстного меню . onContextItemSelected () вызывается для всех существующих в настоящее время фрагментов, начиная с первого добавленного.
В моем случае фрагменты используются для отображения содержимого структуры папки. Когда контекстное меню фрагмента подпапки открывается и выбирается пункт меню, onContextItemSelected () сначала вызывается на верхних уровнях (в зависимости от того, сколько фрагментов разрешено / отображается в данный момент).
Прямо сейчас я использую обходной путь с помощью поля на уровне активности, которое содержит тег последнего фрагмента, вызывающего его onCreateContextMenu () . Таким образом, я могу вызвать "return super.onContextItemSelected (item)" в начале onContextItemSelected () , когда сохраненный тег не совпадает с getTag (). Но мне этот подход кажется немного грязным.
Почему onContextItemSelected () вызывается для всех фрагментов? а не только тот, который вызывал onCreateContextMenu () ?
Каков самый элегантный способ справиться с этим?