нет обратного вызова onOptionsMenuClosed(). и получаю ошибку при переопределении функций onPanelClosed()

У меня есть фрагмент, созданный с использованием PreferenceFragment, где я переопределяю onOptionsMenuClosed(). Но его обратный вызов не приходит к нему. Ни обратный вызов не приходит к OnMenuOpened(), OnPanelCosed()...

Это то, что я уже устал.

@Override
public void onOptionsMenuClosed(Menu menu) {
   // TODO Auto-generated method stub
   Log.e(TAG, "close optionmenu");
   super.onOptionsMenuClosed(menu);
}

и для onPanelClosed это то, что я пытаюсь.

@Override
public void onPanelClosed(int featureId, Menu menu) {
    Log.e(TAG,"on panel closed the feature id is vivek "+featureId);
    super.onPanelClosed(featureId, menu);
}

и когда я делаю это для onPanelClosed(), пожалуйста, помогите мне с этим..

Пожалуйста, предложите, где я ошибаюсь. и есть ли другой способ поймать, закрыто ли меню без выбора какой-либо опции.


person the_D    schedule 28.07.2014    source источник


Ответы (1)


я наконец нашел решение для этого :) .. это то, что сделал.

public boolean isOverflowMenuOpen  = false;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    Activity activity = getActivity();
    activity.getActionBar().addOnMenuVisibilityListener(new OnMenuVisibilityListener() {
    @Override
        public void onMenuVisibilityChanged(boolean isVisible) {
            // TODO Auto-generated method stub
            isOverflowMenuOpen = isOverflowMenuOpen ? false : true;
        }
    });

теперь из переменной isOverflowMenuOpen я могу отслеживать, открыто ли дополнительное меню или нет.

person the_D    schedule 04.08.2014
comment
Очень полезно. Спасибо. - person dazed; 04.02.2016
comment
рад помочь @dazed - person the_D; 06.02.2016