2013-03-19 4 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); 
    } 
} 

Я пытаюсь вызвать мой onPrepareOptionsMenu внутри моего класса Fragment, но его вызов не вызван. Я хочу обновить свой пункт меню, когда я нажимаю на action tab внутри своего action bar.Почему мой onPrepareOptionsMenu не вызван?

+0

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

+0

См. Http://stackoverflow.com/questions/15656953/onprepareoptionsmenu-not-getting-called-in -фрагменты –

ответ

13

Вызов setHasOptionsMenu(true) в onAttach методе

+0

Есть ли преимущество при вызове onAttach, а не onCreateView? –

+0

@JonathanCaryl на самом деле не –

+0

@DmitryZaitsev: Я получаю исключение нулевого указателя в моем методе onPrepareOptionsMenu. – theJava

0

Я получил ту же ошибку, и в моем случае произошла ошибка в моем файле макета XML для одного из суб-деятельности.

Удивительно, но Eclipse не обнаружил ошибку, но после ее удаления программа работала.

Смежные вопросы