AndroidAnnotations(以下AA)を使うとシンプルにオプションメニューを実装することができます。
- @OptionMenuでメニューのリソースを指定します。
- @OptionItemでイベントを受け取るメソッドを指定します。
サンプルコード
@EActivity
@OptionsMenu(R.menu.my_menu) // res/menu/my_menu.xmlを指定します
public class MyActivity extends Activity {
    @OptionMenuItem // MenuItemのインスタンスを取得したい場合はこう書きます。利用しない場合は不必要です
    MenuItem menuSearch;
    @OptionsItem(R.id.menuShare) 
        void myMethod() {
          // R.id.menuShareのメニューが選択されたときの処理を書きます。
        }
    @OptionsItem
    void homeSelected() {
      // リソースIDが指定されていない場合はメソッド名から判定されます(Selectedは無視されます)
          // R.id.homeのメニューが選択された時に実行されます
    }
    @OptionsItem
    boolean menuSearch() {
          menuSearch.setVisible(false);
          // R.id.menuSearchが選択された時に実行されます
          // 返り値はvoidとbooleanを選択できます(falseの場合はmenuの処理を継続できます)
          return true;
    }
    @OptionsItem({ R.id.menu_search, R.id.menu_delete })
    void multipleMenuItems() {
      // 複数のリソースIDを指定できます
    }
    @OptionsItem
    void menu_add(MenuItem item) {
      // パラメータにMenuItemを指定し利用することもできます
      // itemにはR.id.menu_addのMenuItemが入ります
    }
}
フラグメントでも利用することができます
@EFragment
@OptionsMenu(R.menu.my_fragment_menu)
public class MyFragment extends Fragment {
    @OptionsItem
    void menuRefreshSelected() {
    }
}
参考