Alex Rivera | Logout

Android invalidateOptionsMenu() for API < 11

Asked 2012-12-23T03:51:33.863
77

I used ActivityCompat.invalidateOptionsMenu(MainActivity.this); so that my menu item "refresh" can automatically be enabled/disabled without the using have to touch the "Menu" option (imagine the user leaves the Menu open... I need the "Refresh" menu item to automatically disabled and enable itself).

The ActivityCompat.invalidateOptionsMenu(MainActivity.this) works fine in Android 11+. But what can I use for android API < 11 ? :S I've searched so much but I cannot find an answer. Can anyone please help me on this?

This works fine in Android API 11+, using the onPrepareOptionsMenu and ActivityCompat.invalidateOptionsMenu(MainActivity.this). The issue is trying to get it done in Android API < 11.

Here is my onPrepareOptionsMenu method:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    if(menuRefreshEnable){
        menu.getItem(0).setEnabled(true);
    }
    if(!menuRefreshEnable){
        menu.getItem(0).setEnabled(false);
    }       
    return true;
}
Edit
Report

1 Answer

0

This will return true if the API is above or equal to 11 and therefore supported. Before API 11, the menu is drawn when the menu button is pressed so there is no need for this method as it occurs automatically.

answered 2012-12-23T04:15:01.307

Your Answer