onActivityResult() not called when Activity started from Fragment

У меня проблема с импортом картинки из альбома в Android, потому что метод onActivityResult() никогда не вызывается.

Вот код, который я написал (вызывается из фрагмента, а не из активности):

Intent galleryIntent = new Intent(Intent.ACTION_PICK,  android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
getActivity().startActivityForResult(galleryIntent, PICK_IMAGE);

И кстати, я определил onActivityResult(), но он никогда не вызывается:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d(TAG, "onActivityResult"); // not printed
}

Есть идеи, что здесь не так?

Спасибо!

27
задан a.ch. 12 January 2012 в 18:58
поделиться

1 ответ

Попробуйте этот фрагмент:

    Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
    intent.setType("image/*");
    intent.putExtra("return-data", true);
    startActivityForResult(intent, 1);


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

        case 1:
            if(requestCode == 1 && data != null && data.getData() != null){
                Uri _uri = data.getData();

                if (_uri != null) {
                    Cursor cursor = getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
                    cursor.moveToFirst();
                    final String imageFilePath = cursor.getString(0);
                    File photos= new File(imageFilePath);
                    imageView.setImageBitmap(bitmap);
                    cursor.close();
                }
            }
            super.onActivityResult(requestCode, resultCode, data);
        }
    }   
-2
ответ дан 28 November 2019 в 04:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: