У меня есть фрагмент, который загружает DialogFragment.Загруженный DialogFragment представляет собой всплывающий стиль, который позволяет пользователю выбрать фотографию или сделать ее со своей камеры.У меня есть метод onActivityResult в моем классе DialogFragment, который я хочу вызывать, когда они сделали фотографию или выбрали ее из галереи.
Проблема в том, что у меня также есть onActivityResult в родительском фрагменте.Я добавил его, чтобы я мог установить целевой фрагмент при создании диалога, а затем получить обратный вызов при закрытии диалога, чтобы я знал, что нужно выполнять дополнительные действия.
Я использую это для отображения DialogFragment из моего основного фрагмента...
DialogFragment profilePhotoChoose = new ProfilePhotoChoose();
profilePhotoChoose.setShowsDialog(true);
profilePhotoChoose.setCancelable(false);
profilePhotoChoose.setTargetFragment(MyMainFragment.this, REQUEST_CODE); // request code is simply int value
profilePhotoChoose.show(getActivity().getSupportFragmentManager(), "dialogPhotoChoose");
В результате запускается метод onActivityResult основного фрагмента вместо onActivityResult диалогового фрагмента.
Как я могу убедиться, что он вызывает правильный?Нужно ли что-то добавить в намерение, которое запускает камеру или галерею?
ОБНОВЛЕНИЕ
Вот код, который я использую для запуска намерения камеры из DialogFragment,Обратите внимание, я использую поддержку DialogFragment.
Intent pictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if(pictureIntent.resolveActivity(getActivity().getPackageManager()) != null){
try {
File file = .... // file stuff here
if (file != null) {
Uri photoURI = FileProvider.getUriForFile(getActivity(),"com.MYAPPID.android.provider", file);
pictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(pictureIntent, REQUEST_CAPTURE_IMAGE);
}
} catch (Exception ex) {
}
}