我知道这个问题被问了很多,但是它对我不起作用:S我通常试图使用它,但总会出现错误消息。
这是我试图导入的东西:
public boolean onMenuItemClicked(MenuScene pMenuScene, IMenuItem pMenuItem, float pMenuItemLocalX, float pMenuItemLocalY)
{
switch(pMenuItem.getID())
{
case BACK:
createMenuChildScene();
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
return true;
}
}
出于某种原因,如果我将onActivityResult的名称更改为代码中的一个ONActivityResult,那么startActivityForResult是红色下划线,它仍然是红色下划线。
public void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch(requestCode) {
case REQ_CODE_PICK_IMAGE:
if(resultCode == RESULT_OK){
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(
selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
}
}
}
在这里获取内容解析器不起作用或未定义:/我不知道我做错了什么:/
你正在尝试图像选择吗?你正在使用的那个已经过时,仅适用于KitKat以下的版本。我建议你使用google的文档提供程序,它更快更有效,并且doest给出OutOfMemory错误。 https://developer.android.com/guide/topics/providers/document-provider.html也适用于你的startActivityForResult应该正常工作,尝试File-> Invalidate Caches并选择Invalidate Caches并重启它应解决所有不必要的错误。祝好运!
试试这个片段。
在onActivityResult中,在resultcode == Result_ok时放入此代码
case REQ_CODE_PICK_IMAGE:
if(resultCode == RESULT_OK){
Uri selectedImage = imageReturnedIntent.getData();
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
imageview.setImageBitmap(bitmap);
这解决了您的问题。