getActionProvider:item没有实现SupportMenuItem;返回null

时间:2016-01-17 22:53:22

标签: android android-intent android-appcompat share-intent

我正在使用self.updateappcompat-v7:22.2.0'。在尝试创建共享意图时,我收到以下警告:

AppCompatActivity

此外,当菜单中存在共享图标时,没有任何事情发生,当它点击,没有,甚至没有错误。也许这是唯一的问题,即连接水龙头?

看起来我错过了appcompat支持库的一些怪癖但我无法找到相关文档

我的活动中的代码

W/MenuItemCompat: getActionProvider: item does not implement SupportMenuItem; returning null

我尝试过施法,但这没什么区别

@Override                                                                                    
public boolean onCreateOptionsMenu(Menu menu) {                                              
    ...                                                                                 
    mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
    setShareIntent();                                                                        
    ...                                                 
}                                                                                            

private ShareActionProvider mShareActionProvider; 

private void setShareIntent() {                                                                        
    SubsamplingScaleImageView tempImage = (SubsamplingScaleImageView) findViewById(R.id.thumbnailView);
    if (mShareActionProvider != null && tempImage != null) {                                           

        Log.e(TAG, "this happened");                                                                   
        // Get access to the URI for the bitmap                                                        
        Uri bmpUri = getLocalBitmapUri(tempImage);                                                     
        if (bmpUri != null) {                                                                          
            // Construct a ShareIntent with link to image                                              
            Intent shareIntent = new Intent();                                                         
            shareIntent.setAction(Intent.ACTION_SEND);                                                 
            shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);                                         
            shareIntent.setType("image*//*");                                                          
            mShareActionProvider.setShareIntent(shareIntent);                                          
        } else {                                                                                       
            // ...sharing failed, handle error                                                         
        }                                                                                              
    }else{                                                                                             
        Log.e(TAG, "this should not have happened");                                                   
    }                                                                                                  
} 

使用的进口

mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider((SupportMenuItem) shareItem); 

编辑:我尝试使用ActionBarActivity,以防出现问题但没有变化。

2 个答案:

答案 0 :(得分:0)

根据接受的答案:Exception: This is not supported, use MenuItemCompat.getActionProvider()

您需要使用ShareActionProvider的v7版本。我会仔细检查你的进口并确保你有正确的进口。

答案 1 :(得分:0)

事实证明,这个错误让我走上了花园小径。问题原来是我正在使用错误的菜单布局来处理我正在使用的片段。非常令人困惑。

如果mods宁愿我删除这个问题,请告诉我