MenuItemCompat.getActionProvider 返回实例为空的解决

要做一个分享的小功能,用到 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

你可能感兴趣的:(Android,android,menu,v7)