对于MenuItemCompat类型,未定义getActionProvider?

Bru*_*uce 1 android

我正在尝试按照此处的指南在我的操作栏中添加共享提供程序: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());
Run Code Online (Sandbox Code Playgroud)

有一个错误说getIctionProvider是未定义的MenuItemCompat类型,尽管它已记录:http: //developer.android.com/reference/android/support/v4/view/MenuItemCompat.html#getActionProvider(android.view.MenuItem)

有任何想法吗?

谢谢!

iam*_*tar 7

如果没有看到XML,请在菜单布局中定义actionProviderClass:

<item android:id=...
...
yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
Run Code Online (Sandbox Code Playgroud)

并获得对ShareActionProvider的引用

ShareActionProvider shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(menuItem);
Run Code Online (Sandbox Code Playgroud)

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

<item android:id=...
...
yourapp:actionProviderClass="android.widget.ShareActionProvider"/>
Run Code Online (Sandbox Code Playgroud)

并获取对ShareActionProvider的引用:

ShareActionProvider shareActionProvider = (ShareActionProvider) menuItem.getActionProvider();
Run Code Online (Sandbox Code Playgroud)