getActionProvider:项目未实现 SupportMenuItem;返回空值
getActionProvider: item does not implement SupportMenuItem; returning null
我正在使用 appcompat-v7:22.2.0'
和一个 AppCompatActivity
。尝试创建共享意图时,我收到以下警告:
W/MenuItemCompat: getActionProvider: item does not implement SupportMenuItem; returning null
此外,当共享图标出现在菜单中时,点击它时没有任何反应,没有任何反应,甚至没有错误。也许这是唯一的问题,即连接水龙头?
我好像遗漏了 appcompat 支持库的一些怪癖,但我找不到相关文档
我的代码activity
@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);
使用进口
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 尝试了这个,以防出现问题但没有改变。
根据此处接受的答案:
您需要使用v7版本的ShareActionProvider。我会仔细检查您的导入并确保您有正确的导入。
事实证明,这个错误导致我走上了花园小径。问题原来是我为我正在使用的片段使用了错误的菜单布局。非常混乱。
如果模组宁愿我删除这个问题,请告诉我
我正在使用 appcompat-v7:22.2.0'
和一个 AppCompatActivity
。尝试创建共享意图时,我收到以下警告:
W/MenuItemCompat: getActionProvider: item does not implement SupportMenuItem; returning null
此外,当共享图标出现在菜单中时,点击它时没有任何反应,没有任何反应,甚至没有错误。也许这是唯一的问题,即连接水龙头?
我好像遗漏了 appcompat 支持库的一些怪癖,但我找不到相关文档
我的代码activity
@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);
使用进口
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 尝试了这个,以防出现问题但没有改变。
根据此处接受的答案:
您需要使用v7版本的ShareActionProvider。我会仔细检查您的导入并确保您有正确的导入。
事实证明,这个错误导致我走上了花园小径。问题原来是我为我正在使用的片段使用了错误的菜单布局。非常混乱。
如果模组宁愿我删除这个问题,请告诉我