【发布时间】:2014-11-06 15:52:46
【问题描述】:
我正在编写一些其他人编写的代码,但在处理相机意图的结果时遇到了问题。
基本上,我有一个 DashBoardActivity,其中包含一个选项卡,其中包含一个名为“MyProfileContainer”的片段,其中包含一个“SettingsFragment”片段,其中包含一个“EditProfileFragment”片段。
在 EditProfileFragment 中,用户可以为他的个人资料拍照。它可以工作,但它在仪表板活动上调用 onActionResult。
我阅读了一些关于如何将其重定向到 EditProfileFragment 的指南,但我无法做到。 我在这件事上浪费了几天时间,我想不通。
这是 Dashboard Activity 上的 onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
这是 EditProfileFragment
private Uri imageUri = null;
public void captureImage() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photo = new File(Environment.getExternalStorageDirectory(), "Pic.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photo));
imageUri = Uri.fromFile(photo);
getParentFragment().startActivityForResult(intent, 100);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && resultCode == Activity.RESULT_OK) {
Uri selectedImage = imageUri;
getActivity().getContentResolver().notifyChange(selectedImage, null);
ContentResolver cr = getActivity().getContentResolver();
Bitmap bitmap;
try {
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
profilePhoto.setImageBitmap(bitmap);
Toast.makeText(getActivity(), selectedImage.toString(),
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getActivity(), "Failed to load", Toast.LENGTH_SHORT)
.show();
Log.e("Camera", e.toString());
}
}
}
我不知道我是否必须在这两者之间的每个类上重写该方法,或者我是否做错了其他事情,但我确信 EditProfileFragment onActivityResult 永远不会被调用。
【问题讨论】:
标签: android android-intent android-fragments camera fragment