Q:

How to declare MenuItem objects instead of calling it everytime

I don't know how to declare MenuItem object and i call on every method the MenuItem so my code look like:
  private Menu menu;
private void updateMenuIconForWifi(){
        MenuItem menuB = menu.findItem(R.id.action_bluetooth);
        MenuItem menuItemW = menu.findItem(R.id.action_wifi);
        menuB.setVisible(false);
        menuItemW.setIcon(R.drawable.ic_network_wifi_black_24dp);
    }

    private void changeIconToDefaultWifi(){
        MenuItem menuB = menu.findItem(R.id.action_bluetooth);
        MenuItem menuItemW = menu.findItem(R.id.action_wifi);
        menuB.setVisible(true);
        menuItemW.setIcon(R.drawable.ic_wifi_white_24dp);
    }

    private void updateMenuIconForBluetooth() {
        MenuItem menuB = menu.findItem(R.id.action_bluetooth);
        MenuItem menuItemW = menu.findItem(R.id.action_wifi);
        menuItemW.setVisible(false);
        menuB.setIcon(R.drawable.ic_bluetooth_connected_black_24dp);
    }

    private void changeIconToDefaultForBluetooth() {
        MenuItem menuB = menu.findItem(R.id.action_bluetooth);
        MenuItem menuItemW = menu.findItem(R.id.action_wifi);
        menuB.setIcon(R.drawable.ic_bluetooth_white_24dp);
        menuItemW.setVisible(true);
    }

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater = getMenuInflater();
        this.menu = menu;
        menuInflater.inflate(R.menu.menu_settings, menu);
        for (int j = 0; j < menu.size(); j++) {
            MenuItem item = menu.getItem(j);
            item.setShowAsActionFlags(MenuItem. SHOW_AS_ACTION_ALWAYS);
        }
        return true;
    }

but this look so ugly. 
How to declare the MenuItems once?  when i try adding some value like
private MenuItem menuB, menuItemW;

and then call this like in onCreate
menuB = menu.findItem(R.id.action_bluetooth);
menuItemW = menu.findItem(R.id.action_wifi);

i got a error

A:

First read about onPrepareOptionsMenu(Menu menu)
Each time the user presses the Menu on their Android device while inside one of your activities, the onPrepareOptionsMenu method is called.   The first time the menu is shown (i.e. only once), the onCreateOptionsMenu method is called. 
Basically, the onPrepareOptionsMenu method is where you should make any changes such as enabling/disabling certain menu items, or changing the menu item text depending on the circumstances. 
So do this (Don't use onCreateOptionsMenu(Menu menu) )
//Dynamically create context Menu
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        menu.clear(); //Clear view of previous menu
        MenuInflater inflater = getMenuInflater();
        if(condition_true)
            inflater.inflate(R.menu.menu_one, menu);
        else
            inflater.inflate(R.menu.menu_two, menu);
        return super.onPrepareOptionsMenu(menu);
    }

