-2

I'm a super beginner with Android Studio. I'm trying to Open album and get images and startActivityForResult() has been deprecated. How can I change my code by using ActivityResultLauncher?

public class AddPhotoActivity extends AppCompatActivity implements View.OnClickListener {

    private ActivityAddPhotoBinding binding;

    private String Url;

    private FirebaseStorage firebaseStorage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        binding = DataBindingUtil.setContentView(this, R.layout.activity_add_photo);

        binding.addphotoBtnUpload.setOnClickListener(this);


        //Open Album
        Intent intent = new Intent(Intent.ACTION_PICK);
        intent.setType("image/*");
        startActivityForResult(intent, PICK_IMAGE_FROM_ALBUM);

        // Firebase storage
        firebaseStorage = FirebaseStorage.getInstance();

     
        binding.addphotoImage.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                Intent intent = new Intent(Intent.ACTION_PICK);
                intent.setType("image/*");
                startActivityForResult(intent, PICK_IMAGE_FROM_ALBUM);
            }
        });
    }
a_local_nobody
  • 7,947
  • 5
  • 29
  • 51
Ally
  • 11
  • 1

1 Answers1

0

You should.

 ActivityResultLauncher<String> mGetContent = registerForActivityResult(new GetContent(),
    new ActivityResultCallback<Uri>() {
        @Override
        public void onActivityResult(Uri uri) {
            // Handle the returned Uri
        }
});

@Override
public void onCreate(@Nullable savedInstanceState: Bundle) {
    // ...
    
    binding.addphotoImage.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            // Pass in the mime type you'd like to allow the user to select
            // as the input
            mGetContent.launch("image/*");
        }
    });
}
Cuong Nguyen
  • 970
  • 6
  • 17