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); 
    } 
} 

私のFragmentクラス内に私のonPrepareOptionsMenuを呼び出そうとしていますが、呼び出されません。 action barの中のaction tabをクリックすると、メニュー項目が更新されます。 onAttach方法なぜ私のonPrepareOptionsMenuが呼び出されないのですか?

+0

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

+0

http://stackoverflow.com/questions/15656953/onprepareoptionsmenu-notgetting-called-inを参照してください。 -fragments –

答えて

13

コールsetHasOptionsMenu(true)私は同じエラーを持って、私の場合にはサブアクティビティの1のための私のXMLレイアウトファイルにエラーがありました。

驚いたことにEclipseはエラーを表示しませんでしたが、削除した後、プログラムが機能しました。

+0

onCreateViewではなくonAttachを呼び出す利点がありますか? –

+0

@JonathanCarylは実際にはありません –

+0

@DmitryZaitsev:私のonPrepareOptionsMenuメソッドでnullポインタ例外が発生しました。 – theJava

0

関連する問題