因为要在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);
}
}