不可转换的类型,无法投射' android.view.ActionProvider' to' android.support.v7.widget.ShareActionProvider'

时间:2017-09-16 13:35:52

标签: android

3 个答案:

答案 0 :(得分:0)

修复是在声明中使用android.widget的ShareActionProvider而不是android.support.v7.widget.ShareActionProvider

声明如下:

private android.widget.ShareActionProvider mShareActionProvider;

然后在onCreateOptionsMenu()中执行此操作:

mShareActionProvider = (android.widget.ShareActionProvider) item.getActionProvider();

答案 1 :(得分:0)

您必须从ShareActionProvider导入package android.widget;检查您的导入声明。

答案 2 :(得分:0)

如果您试图使它在API 14之前运行,则还需要使用MenuItemCompat,该菜单项将使您能够获得v7共享操作提供程序。所以改变:

shareActionProvider2 = (android.support.v7.widget.ShareActionProvider) item.getActionProvider(item);

shareActionProvider2 = (android.support.v7.widget.ShareActionProvider) MenuItemCompat.getActionProvider(item);

请注意,您无法创建MenuItemCompat的实例-例如,您不能简单地将MenuItem项目更改为MenuItemCompat。 MenuItemCompat仅提供可以在MenuItem上使用的静态方法。