title: MenuItem.setIcon() method doesn't work
body: <p>I've tried already all possible solutions. Here's my code:</p>
  
  <pre><code>private Menu mMenu;
  
  @Override
  public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
      inflater.inflate(R.menu.fragment_article_detail_menu, menu);
      mMenu = menu;
  }
  
  void changeStar(boolean added) {
      if (mMenu != null) {
          MenuItem item = mMenu.findItem(R.id.favourites_item);
          if (added) {
              Log.d(LOG_TAG, "Set full icon");
              item.setIcon(getResources().getDrawable(R.drawable.star_full));
          } else {
              Log.d(LOG_TAG, "Set empty icon");
              item.setIcon(getResources().getDrawable(R.drawable.star_empty));
          }
      }
  }
  </code></pre>
  
  <p>Here is my menu xml file:</p>
  
  <pre><code>&lt;menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      tools:context="ssidit.pp.ua.payspacereader.ArticleDetailActivity"&gt;
      &lt;item
          android:id="@+id/refresh_item"
          android:title="@string/refresh"
          app:showAsAction="never"&gt;&lt;/item&gt;
  
      &lt;item
          android:id="@+id/favourites_item"
          android:icon="@drawable/star_empty"
          android:title="@string/add_to_favourite"
          app:showAsAction="ifRoom"&gt;&lt;/item&gt;
  
      &lt;item
          android:id="@+id/share_item"
          android:icon="@drawable/ic_share"
          android:title="@string/share"
          app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
          app:showAsAction="ifRoom"&gt;&lt;/item&gt;
  &lt;/menu&gt;
  </code></pre>
  
  <p>invalidateMenu() method doesn't help. When I call setIcon method, nothing changes on my android device.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>private boolean isFavourite;
  
   private void setValues(Cursor cursor) {
  
      Log.d(LOG_TAG, "Setting values");
  
      setData(titleTextView, CursorUtility.getTitle(cursor));
      setData(dateTextView, CursorUtility.getDateText(cursor));
      setData(timeTextView, CursorUtility.getTimeText(cursor));
      isFavourite = CursorUtility.isFavourite(cursor);
      getActivity().invalidateOptionsMenu();
  }
  
  
  @Override
  public void onPrepareOptionsMenu(Menu menu) {
      super.onPrepareOptionsMenu(menu);
      Log.d(LOG_TAG, "OnPrepareOptionsMenu");
      MenuItem item = menu.findItem(R.id.favourites_item);
      if (isFavourite) {
          Log.d(LOG_TAG, "Set full icon");
          item.setIcon(R.drawable.star_full);
      } else {
          Log.d(LOG_TAG, "Set empty icon");
          item.setIcon(R.drawable.star_empty);
      }
  }
  </code></pre>
  
  <p>As you can see, everything is logged. So there can't be mistake if some method doesn't call. Also I checked item by getting title of it. It is right item. Just some kind of black magic.</p>