Search code examples
androidandroid-activity

How to send picture from one activity to another in Android Studio


I want click a save button to send a picture to Main2Activity.

Button capture:

   mCapture.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
                if(checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_DENIED
                || checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED){
                    String[] permission = {Manifest.permission.CAMERA , Manifest.permission.WRITE_EXTERNAL_STORAGE};

                    requestPermissions(permission,PERMISSION_CODE);
                }
                else{
                    opemCamera();
                }
            }
            else{
                opemCamera();
            }
        }
    });

Button save for sent picture to Main2Activity:

   mSave.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(MainActivity.this,Main2Activity.class);
             startActivity(intent);

        }
    });

Call when image was captured from camera:

 @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

    if(resultCode == Activity.RESULT_OK){
            mImageView.setImageURI(image_uri);
        }
}

Solution

  • You can pass the Uri as a String using the intent.

    First activity:

    Intent intent = new Intent(MainActivity.this,Main2Activity.class);
    intent.putExtra("image_uri", image_uri.toString());
    startActivity(intent);
    

    Second activity:

    You get the Uri like this:

    Uri image_uri = Uri.parse(getIntent().getExtras().getString("image_uri"));