我一直在研究这个,但我无法找到答案。
我正在使用媒体商店意图从图库中选择图像,我可以在onActivityResult方法中获取图像文件路径。 (我知道如何在intent和filepath中获取URI)。
我在启动活动(startActivityForResult)时传递了一些额外的意图,但是所有的意图额外都是null。
代码段(以防):
这是我的onActivityResult代码正在运行,我得到了图像路径
/* On activity result from image button */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("Result Code" + resultCode);
if(requestCode == FavoriteListAdapter.IMAGE_PICK_CODE && data != null && data.getData() != null && resultCode == FragmentActivity.RESULT_OK) {
Uri _uri = data.getData();
//User had pick an image.
Cursor cursor = getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
cursor.moveToFirst();
//Link to the image
String imageFilePath = cursor.getString(0);
System.out.println("imagefilepath" + imageFilePath);
System.out.println(data.getStringExtra("exp"));
cursor.close();
}
}
我正在使用startActivityForResult
开始我的活动Intent imageIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
imageIntent.setType("image/*");
imageIntent.putExtra("exp", "testing");
((FragmentActivity)view.getContext()).startActivityForResult(imageIntent, IMAGE_PICK_CODE);
我应该能够在onActivityForResult中获得字符串“testing”,但我得到的只是null。
任何想法和建议将不胜感激。很多。
答案 0 :(得分:4)
实际上我想出来了..当您向MediaStore或相机等系统活动发送意图时... onActivityResult将没有您在调用活动时发送的意图额外内容。
这可能是设计的,只包含系统活动给出的额外内容。例如,从图库中选择图像后,图库中的返回意图将仅包含包含图像路径的URI。
相机或任何系统活动也是如此。