2013-03-19 9 views
5
public class BFragmentTab extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      // Inflate the layout for this fragment 
      return inflater.inflate(R.layout.recents, container, false); 
    } 

    @Override 
    public void onPrepareOptionsMenu(Menu menu) { 
     menu.clear(); 
     MenuItem filter = menu.findItem(R.id.filter); 
     MenuItem refresh = menu.findItem(R.id.refresh); 
     //depending on you conditions, either enable/disable 
     filter.setEnabled(false); 
     refresh.setEnabled(false); 
     super.onPrepareOptionsMenu(menu); 
    } 
} 

Próbuję zadzwonić pod mój onPrepareOptionsMenu wewnątrz klasy Fragment, ale nie jest wywoływana. Chcę odświeżyć moją pozycję menu po kliknięciu na action tab w moim action bar.Dlaczego moje wywołanie onPrepareOptionsMenu nie jest wywoływane?

+0

http://developer.android.com/reference/android/app/Fragment.html#setHasOptionsMenu(boolean) – Selvin

+0

Zobacz http://stackoverflow.com/questions/15656953/onprepareoptionsmenu-not-getting-called-in -fragmenty –

Odpowiedz

13

połączeń setHasOptionsMenu(true) w onAttach metody

+0

Czy wywołanie funkcji onAttach jest lepsze niż w trybie onCreateView? –

+0

@ JonathanCaryl naprawdę nie –

+0

@DmitryZaitsev: Dostaję wyjątek wskaźnika pustego w mojej metodzie onPrepareOptionsMenu. – theJava

0

mam ten sam błąd w moim przypadku wystąpił błąd w moim pliku XML szablonu dla jednego z poddziałania.

Zaskakująco Eclipse nie pokazał błędu, ale po jego usunięciu program zadziałał.

Powiązane problemy