版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hbwindy/article/details/51706644
要做一个分享的小功能,用到 ShareActionProvider
ShareActionProvider mShareActionProvider = (ShareActionProvider)MenuItemCompat.getActionProvider(shareItem);
这一行代码得到的实例死活就是个空,查了好多资料终于解决。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_share"
android:title="@string/action_share"
myapp:showAsAction="always"
myapp:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
</menu>
在xml文件中修改,注意三个 myapp 的位置,原本都是 android。
改成这样之后就可以了。
具体原因没弄清楚,应该跟 v7 包的兼容性有关。
v4、v7、v13 这几个包,已经踩了很多坑了,唉。。。。
相似问题 stackoverflow 地址:http://stackoverflow.com/questions/19358510/why-menuitemcompat-getactionprovider-returns-null