pavan
pavan

Reputation: 1135

How to return bitmap from child activity in android

I have tried below code to return bitmap from child activity to parent activity and I am getting null pointer exception,

Child Activity Code:

        ByteArrayOutputStream stream = new ByteArrayOutputStream();
    overlayImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] byteArray = stream.toByteArray();

    Intent intent=new Intent();
    intent.putExtra("overlay",byteArray);
    setResult(RESULT_OK, intent);

    finish();

Parent Activity Code:

            protected void onActivityResult(int requestCode, int resultCode, Intent data)           {
                if (resultCode == RESULT_OK) {
            editorBitmapArray.add(current_bmp);
            byte[] byteArray = getIntent().getByteArrayExtra("overlay");
            current_bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
            Image.setImage(current_bmp);
        }

How to return byte array from child activity to parent activity in android?

Upvotes: 5

Views: 2943

Answers (2)

Ravi Kant
Ravi Kant

Reputation: 830

you should get bitmap by data not getIntent()

   protected void onActivityResult(int requestCode, int resultCode, Intent data)           {
                if (resultCode == RESULT_OK) {
            editorBitmapArray.add(current_bmp);
            byte[] byteArray = data.getByteArrayExtra("overlay");
            current_bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
            Image.setImage(current_bmp);
        }

Upvotes: 7

ρяσѕρєя K
ρяσѕρєя K

Reputation: 132992

Use data instead of getIntent() to get ByteArray in onActivityResult :

byte[] byteArray = data.getByteArrayExtra("overlay");

Upvotes: 2

Related Questions