因为要在fragment中获取相机返回的图片,因此重写了一下onActivityResult这个方法
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST_CODE){
if (resultCode == RESULT_OK){
Toast.makeText(getActivity().getApplicationContext(),
"get picture,path = "+mFilePath,Toast.LENGTH_SHORT).show();
displayImage(mFilePath);
}else if (resultCode == RESULT_CANCELED){
}else{
}
}else if(requestCode == ALBUM_REQUEST_CODE){
if(resultCode == RESULT_OK){
if(Build.VERSION.SDK_INT >= 19){
handleImageOnKitKat(data);
}else{
handleImageBeforeKitKat(data);
}
}
}
}
然后在Activity中也重写了onActivityResult这个方法
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Fragment f = this.getSupportFragmentManager().findFragmentById(0);
f.onActivityResult(requestCode,resultCode,data);
}
结果在调用相机后按返回键会出现空指针异常
解决方案:
对findFragmentById返回的Fragment进行判空操作,就解决了。
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data){
super.onActivityResult(requestCode, resultCode, data);
Fragment f = this.getSupportFragmentManager().findFragmentById(0);
if (f != null) {
f.onActivityResult(requestCode,resultCode,data);
}
}
本文详细介绍了在Android应用中,如何在Fragment中正确处理从相机返回的图片,避免了因错误地调用onActivityResult方法而导致的空指针异常。通过检查findFragmentById返回的Fragment是否为空,确保了代码的稳定性和可靠性。
2122

被折叠的 条评论
为什么被折叠?



