6

I use a ShareActionProvider in a PopupMenu, but when I click the share menu item, it shows two PopupMenus on the screen, one covered by the other. And one shows the application icon and name, the other one only shows the application name.

It works fine except this problem...
How can I fix it?

P.S.: please forgive me for my bad expression

My code is:

PopupMenu popup = new PopupMenu(this, button);
popup.getMenuInflater().inflate(R.menu.scrawl_popup_menu, popup.getMenu());
MenuItem overflowItem = popup.getMenu().findItem(R.id.popup_share);
ShareActionProvider overflowProvider =
    (ShareActionProvider) overflowItem.getActionProvider();
overflowProvider.setShareHistoryFileName(
    ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
overflowProvider.setShareIntent(createShareIntent());

menu.xml is:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/popup_clear"
        android:icon="@drawable/ic_menu_clear"
        android:title="@string/popup_menu_clear" />
    <item android:id="@+id/popup_insert_bg"
        android:icon="@drawable/ic_menu_insert_bg"
        android:title="@string/popup_menu_insert_bg"/>
    <item android:id="@+id/popup_share"
        android:icon="@android:drawable/ic_menu_share"
        android:title="@string/popup_menu_share"
        android:actionProviderClass="android.widget.ShareActionProvider">
    </item>
</menu>
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Limp
  • 319
  • 1
  • 2
  • 8
  • Totally bizarre problem, with multiple questions on here about it and absolutely no answers! Heh! – Fattie Jun 06 '14 at 09:19

1 Answers1

0

I had to use startActivity(getShareIntent("/status.jpg")); This doesn't work exactly as you expect. However, it can be used for the same purpose. Hope it help.

private Intent getShareIntent(String filePath) {
        Intent shareIntent = new Intent(Intent.ACTION_SEND);

        File sdCard = Environment.getExternalStorageDirectory();

        File sharedFile = new File(sdCard + sharePath);
        Uri uri = Uri.fromFile(sharedFile);

        shareIntent.setType("image/*");
        shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
        return shareIntent;
    }

However, finally I moved to use action bar with Selection patten instead: http://developer.android.com/design/patterns/selection.html

Loc Phan
  • 4,304
  • 4
  • 29
  • 35