1

我正在尝试将共享操作栏项目添加到我的应用程序。在 sherlock 示例中,它看起来像这样:

夏洛克动作栏的动作栏

但是当我在我的应用程序中使用此代码时:

public static void attachShareItemToMenu(Menu menu, String title, String url) {
    MenuItem item = menu.findItem(R.id.menu_item_share_share);
    ShareActionProvider provider = (ShareActionProvider)item.getActionProvider();

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_TEXT, url);
    intent.putExtra(android.content.Intent.EXTRA_SUBJECT, title);
    Intent shareIntent = Intent.createChooser(intent, title);

    provider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
    provider.setShareIntent(shareIntent);
}

它看起来像这样:

夏洛克操作栏

如果我单击该项目,它会打开默认的共享意图。我不明白为什么会这样,因为代码与示例代码没有太大区别。

有什么想法吗?

4

1 回答 1

2

摆脱createChooser()线。你不需要它。显示的ShareActionProvider是选择器本身。

于 2013-09-20T14:40:35.993 回答