Search code examples
androidimagesharemenuitemviewflipper

Two different MenuItems with different time response


I have two different Menu items (Flipping and Sharing) that share a single activity. Each one of them, works perfectly and smooth by its own, but when I put them together, the flipping action takes too long to respond. What can I do? Thanks for your help.

Flipping action:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    // Add either a "photo" or "finish" button to the action bar, depending on which page
    // is currently selected.
   MenuItem item = menu.add(Menu.NONE, R.id.action_flip, Menu.NONE,
           mShowingBack
                   ? R.string.action_photo
                   : R.string.action_info);

   item.setIcon(mShowingBack
           ? R.drawable.ic_action_photo
         : R.drawable.ic_action_info);
   item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    return true;
}

Share Action

public boolean onPrepareOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.share_menu, menu);
    MenuItem item = menu.findItem(R.id.menu_item_share);
    mShareActionProvider = (ShareActionProvider) item.getActionProvider();
    mShareActionProvider.setShareIntent(getDefaultShareIntent());
    return super.onPrepareOptionsMenu(menu);
}

Solution

  • I left this question open, and I forgot about it. However, I took a look again and remember how I solve it. I was doing it all wrong. I had to call super.onPrepareOptionsMenu(menu) before everything like this:

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.share_menu, menu);
        MenuItem item = menu.findItem(R.id.menu_item_share);
        mShareActionProvider = (ShareActionProvider) item.getActionProvider();
        mShareActionProvider.setShareIntent(getDefaultShareIntent());
    
        return true;
    }