MainActivity.java

public class MainActivity extends AppCompatActivity {
	
    // SecondActivity -> MainActivity Result 
	ActivityResultLauncher<Intent> mStartForResult = registerForActivityResult(
                new ActivityResultContracts.StartActivityForResult(),
                result -> {
                    if(result.getResultCode() == RESULT_OK) {
                        String str = result.getData().getStringExtra("RESULT");
                        Log.d("ActivityResult", str);
                    }
                    if(result.getResultCode() == RESULT_CANCELED){

                    }
                }
        );
        
        
     public void onStringDataSendButton(View v) {
     	Intent intent = new Intent(IntentActivity.this, SecondActivity.class);

        intent.putExtra("RESULT", RESULT_OK);
        intent.putExtra("TEXT", "성공");
        mStartForResult.launch(intent);
     }
     
     public void onUriArrayDataSendButton(View v) {
     	ArrayList<Uri> imageUris = galleryAdapter.getImageUris();
        Uri[] uris = new Uri[imageUris.size()];
        for (int i = 0; i < imageUris.size() ; i++) {
            uris[i] = imageUris.get(i);
        }
        
     	Intent intent = new Intent();
        intent.putParcelableArrayListExtra("images", uris);
     }
     
     public void onImageDataSendButton(View v) {
     	// Bitmap 이미지 -> ByteArray 변경해서 전송하는 방식
        Intent intent = new Intent(MainActivity.this, SecondActivity.class);
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.check_visiable);
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        byte[] byteArray = stream.toByteArray();
        intent.putExtra("image", byteArray);

        startActivity(intent);
     }
}

 

SecondActivity.java

public class SecondActivity extends AppCompatActivity {
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        
        // 일반 텍스트 받는쪽
        Intent intent = getIntent();
        int result = intent.getIntExtra("RESULT", 0);
        String text = intent.getStringExtra("TEXT");
        
        // MainActivity로 재전송
        if (result == RESULT_OK) {
            intent.putExtra("RESULT", "성공");
            setResult(RESULT_OK, intent);
            finish();
        }
    }
}

public class SecondActivity extends AppCompatActivity {
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        
        // URI Array 데이터 받는쪽
         if (result.getResultCode() == RESULT_OK) {
             Intent intentData = result.getData();
             ArrayList<Uri> images = intentData.getParcelableArrayListExtra("images");
             Uri[] uris = new Uri[images.size()];
             for (int i = 0; i < images.size() ; i++) {
                 uris[i] = images.get(i);
             }
			//........ uris를 받아서 로직 처리
         
         } else {
         
         }
    }
}

public class SecondActivity extends AppCompatActivity {
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        
        ImageView imageView = findViewById(R.id.imageView);
        
        // Bitmap 이미지 -> Byte Array 로 전송방식
        if (result.getResultCode() == RESULT_OK) {
            Intent intent = getIntent();
            byte[] byteArray = getIntent().getByteArrayExtra("image");
            Bitmap image = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
            imageView.setImageBitmap(image);
        }
    }
}

+ Recent posts