我正在尝试将 byteArray 和一个字符串从当前活动传递到前一个片段。
public void uploadClick (View view) {
//Send results back to previous screen
switch (activity.from) {
case "review" :
if (activity.mCurrentPhotoPath != null && activity.bytes != null) {
Intent reviewReturnIntent = new Intent();
reviewReturnIntent.putExtra(ReviewsFragment.REVIEW_PHOTO_BITMAP, activity.bytes);
reviewReturnIntent.putExtra(ReviewsFragment.REVIEW_PHOTO_PATH, activity.mCurrentPhotoPath);
activity.setResult(Activity.RESULT_OK, reviewReturnIntent);
activity.finish();
}
break;
case "reply" :
break;
case "merchant" :
break;
}
}
片段 onActivityResult :
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REVIEW_REQUEST) {
if (resultCode == getActivity().RESULT_OK) {
if (data != null) {
returnedBitmap = data.getByteArrayExtra(REVIEW_PHOTO_BITMAP);
returnedPhotoPath = data.getStringExtra(REVIEW_PHOTO_PATH);
Bitmap bmp = BitmapFactory.decodeByteArray(returnedBitmap, 0, returnedBitmap.length);
binding.reviewIV.setImageBitmap(bmp);
binding.returnedImageLayout.setVisibility(View.VISIBLE);
}
}
}
}
startActivityForResult 调用:
public void uploadClick (View view) {
Intent uploadPhotoIntent = new Intent(fragment.getContext(), UploadPhotoActivity.class);
uploadPhotoIntent.putExtra(UploadPhotoActivity.FROM, "review");
fragment.startActivityForResult(uploadPhotoIntent, ReviewsFragment.REVIEW_REQUEST);
}
每次我尝试使用意图参数运行 activity.setResult 时。编译器运行该代码,但没有完成活动(因此我无法返回到上一个片段/活动)。我添加了断点,它运行“setResult”和“activity.finish()”方法。但这似乎并没有破坏当前的活动。
虽然从“setResult”方法中取出意图参数后,一切正常,但在前一个片段上,我得到了从“数据”返回的空值。
例子 :
activity.setResult(Activity.RESULT_OK);
一直试图在互联网上寻找答案,仍然没有运气。非常感谢,感谢您的阅读。:)