onActivityResult никогда не вызывается в DialogFragment - PullRequest
0 голосов
/ 04 февраля 2020

Перед серьезной проблемой заяц. Мое приложение должно получать изображения с устройства из диалогового окна. Мне нужен результат / выбранное изображение назад в dialogFragment, чтобы я мог применить дальнейший процесс загрузки. Я пробовал так много способов, но не смог найти решение.

RegisterDialogFragment. java:

   private void chooseImage(){

   Intent intent = new Intent(Intent.ACTION_PICK);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("image/*");
    getActivity().startActivityForResult(intent, READ_REQUEST_CODE);

}

@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
        Uri uri = null;
        if (data != null) {
            uri = data.getData();
            Log.i(TAG, "Uri: " + uri.toString());
            try {
                //Bitmap imageBitmap=(Bitmap) imageUri.getPath().getBytes();
                Bitmap imageBitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
                shopPhoto.setImageBitmap(imageBitmap);
                //compressing the image bitmap into png
                ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
                imageBitmap.compress(Bitmap.CompressFormat.PNG,100,outputStream);

                //put the raw pixels of the image into the byte array
                image_data =outputStream.toByteArray();

            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        // END_INCLUDE (parse_open_document_response)
    }
}

MainActivity. java:

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
}
...