0
我有一个带有ContextMenu条目的ListView,它启动用户照片库startActivityForResult,以便他可以选择一个图像将其与ListItem关联。选择图像效果很好,并且我从Intent获取图像uri传递到onActivityResult。将startActivityForRes中的ID传递给onActivityResult
问题是,我没有在onActivityResult中获取ListItem的id。 我试图将它附加到我通过putExtra传递给startActivityForResult的意图,但我在onActivityResult中收到的意图显然不再一样。
有没有办法将这些信息传递给onActivityResult?这里是我的代码:
private void pickPhoto(long itemId) {
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.putExtra(ITEM_ID, itemId);
startActivityForResult(i, PICK_PHOTO_REQUEST);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case PICK_PHOTO_REQUEST:
long itemId = data.getLongExtra(ITEM_ID, 0);
long imageId = ContentUris.parseId(data.getData());
// That here says itemId is 0:
Log.d(TAG, "adding image " + imageId + " to item " + itemId);
setPhoto(itemId, imageId);
break;
default:
super.onActivityResult(requestCode, resultCode, data);
}
}
Thanxalot!
您是否检查了设置为Intent附加项的itemId? – Suchi
是的,现在我做了。它不是0.所以在这里一切似乎都是正确的。 – jederik
您是否尝试过使用intent.hasExtra(ITEM_ID); – Suchi