1

我正在尝试按照此处的指南将共享提供程序添加到我的操作栏:http: //developer.android.com/guide/topics/ui/actionbar.html#ShareActionProvider

但是,当尝试按照我的 onCreateOptionsMenu() 中的说明添加以下内容时

// Set up ShareActionProvider's default share intent
MenuItem shareItem = menu.findItem(R.id.action_share);
mShareActionProvider = (ShareActionProvider)
        MenuItemCompat.getActionProvider(shareItem);
mShareActionProvider.setShareIntent(getDefaultIntent());

有一个错误说 getActionProvider 没有为 MenuItemCompat 类型定义,尽管它被记录在案:http: //developer.android.com/reference/android/support/v4/view/MenuItemCompat.html#getActionProvider(android.view.MenuItem)

有任何想法吗?

谢谢!

4

1 回答 1

7

在没有看到您的 XML 的情况下,在您的菜单布局中定义您的 actionProviderClass:

<item android:id=...
...
yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>

并获得对 ShareActionProvider 的引用

ShareActionProvider shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(menuItem);

请记住,文档使用支持库中的示例。如果是这种情况,那么在您的菜单布局中:

<item android:id=...
...
yourapp:actionProviderClass="android.widget.ShareActionProvider"/>

并获取对 ShareActionProvider 的引用:

ShareActionProvider shareActionProvider = (ShareActionProvider) menuItem.getActionProvider();
于 2013-10-15T08:00:04.587 回答