0
我试图让用户从他们的画廊选择一个图像来替换我的活动(这是基于DB值编程添加)现有的。下面是这是造成一些问题上我的代码部分:Android - getIntExtra结果默认值在onActivityResult
public void requestImage(int imageID){
Intent intent = new Intent();
intent.putExtra("imageID",imageID);
intent.setType("image/*");
Log.v("requestImage",Integer.toString(intent.getIntExtra("imageID",0)));
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
int imageID = data.getIntExtra("imageID",0);
Log.v("onactivityresult",Integer.toString(imageID));
} catch (IOException e) {
e.printStackTrace();
}
}
}
的目标是让被选定为这个功能,我路过这对requestImage,通过对onActivityResult的图像的ID。 onActivityResult包含用于根据用户选择的图像设置图像位图的代码(为简明起见,从代码示例中省略)。
注意两个记录语句,这导致:
05-27 15:51:31.756 7769-7769/com.praytoday.app.praytoday V/requestImage: 12
05-27 15:45:55.511 2037-2037/com.praytoday.app.praytoday V/onactivityresult: 0
如您在日志报表注意到,第一个日志实际上是让从意图本身整型,所以我敢肯定它是被正确设置(并且这里没有任何类型问题)。
在我看来,数据不应该是一样的意图(请原谅我缺乏对意图主题的认识 - 这对我来说很新颖)。
的事情,我曾尝试:
- 使用getIntent(),而不是数据
- 不使用createChooser,而是只使用普通的意图
- 看着这个我的每一个问题/答案可以找到
任何帮助确定为什么这个额外的价值不在数据参数将非常感激!提前致谢。
如果我没有记错,传递的意图不是你传递的意图 - 意味着该意图中的任何参数都不会返回。但我可能是错的 – Zoe
这真的好像会击败目的!似乎必须有可能通过某种方式传递一个论点 - 我真的认为这是方式,但我想也许它不是。 – 3nails4you
虽然我很久没有使用startActivityForResult,但不要把它当作答案。由于框架中的错误,可能会有一些重置它。 – Zoe