承载此片段的活动有其 onActivityResult
在相机活动返回时调用。
我的片段启动了一个结果活动,目的是发送给相机拍照。图片应用程序加载正常,拍照并返回。 onActivityResult
但是永远不会被击中。我设置了断点,但没有触发任何东西。片段可以有 onActivityResult
吗?我会这么认为,因为它是一个提供的功能。为什么不触发这个?
ImageView myImage = (ImageView)inflatedView.findViewById(R.id.image);
myImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, 1888);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if( requestCode == 1888 ) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
((ImageView)inflatedView.findViewById(R.id.image)).setImageBitmap(photo);
}
}
原文由 Spidy 发布,翻译遵循 CC BY-SA 4.0 许可协议
托管活动覆盖
onActivityResult()
,但它没有调用super.onActivityResult()
以获取未处理的结果代码。显然,即使片段是发出startActivityForResult()
调用的片段,该活动还是第一次处理结果。当您考虑片段的模块化时,这是有道理的。一旦我为所有未处理的结果实施了super.onActivityResult()
,片段就可以处理结果。还有来自@siqing 的回答:
要在片段中获取结果,请确保在片段中调用
startActivityForResult(intent,111);
而不是getActivity().startActivityForResult(intent,111);
。