首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >getActionProvider: item不实现SupportMenuItem;返回null

getActionProvider: item不实现SupportMenuItem;返回null
EN

Stack Overflow用户
提问于 2016-01-17 22:53:21
回答 2查看 348关注 0票数 0

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

代码语言:javascript
运行
复制
W/MenuItemCompat: getActionProvider: item does not implement SupportMenuItem; returning null

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

看起来我错过了appcompat支持库的一些怪癖,但是我找不到相关的文档。

我活动中的代码

代码语言:javascript
运行
复制
@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");                                                   
    }                                                                                                  
} 

我试着投,但这没什么区别

代码语言:javascript
运行
复制
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider((SupportMenuItem) shareItem); 

所用进口

代码语言:javascript
运行
复制
import android.app.Fragment;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v4.view.MenuItemCompat;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v7.widget.ShareActionProvider;
import android.widget.ImageView;  

编辑:我用ActionBarActivity试过,以防出现问题,但没有改变。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-19 22:27:16

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

如果mods想让我删除这个问题,请告诉我

票数 0
EN

Stack Overflow用户

发布于 2016-01-17 23:45:27

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

您需要使用v7版本的ShareActionProvider。我会再检查一下你们的进口商品,确保你们的货是对的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34844754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档