如何将从第二个活动拍摄的捕获图像发送回主要活动?

问题描述

这是我来自名为 react-native-svg@"^12.1.0" from the root project 类的主活动类的代码,其中当我按下添加条目按钮时,它将导航到下一个活动,即 npm-install

Account

进入第二个 Activity 后,即 AddEntry 类,当单击名为 entryPhoto 的 ImageView 时,将使用用户的相机捕获图片

    //ADD ENTRY BUTTON
    accountBtn.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(Account.this,AddEntry.class);
            startActivityForResult(intent,REQUEST_CODE_ADD);
        }
    });

这是我将用户输入的所有信息放入然后将其发送回主活动的代码。在 addPhoto 中我应该放置要传递的图像。我只尝试从我的 drawable 中传递图像,因为我真的不知道如何传递捕获的图像。

AddEntry

这是主activity中onActivityResult中的代码

    entryPhoto.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent takePhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File tempImage = null;
            try {
                tempImage = createImage();
            } catch (Exception e) {
                e.printstacktrace();
            }

            if (tempImage != null){
                Uri uriImage = FileProvider.getUriForFile(c,"com.example.login.fileprovider",tempImage);
                mCurrentPhotoUri = uriImage;
                takePhoto.putExtra(MediaStore.EXTRA_OUTPUT,uriImage);

                if (ContextCompat.checkSelfPermission(c,Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED){
                    ActivityCompat.requestPermissions(AddEntry.this,new String[]{Manifest.permission.CAMERA},REQ_CODE_CAMERA);

                }
                else {
                    startActivityForResult(takePhoto,REQ_CODE_TAKE_PHOTO);
                }

            }
        }
    });
  protected void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);
    if(requestCode == REQ_CODE_TAKE_PHOTO && resultCode == RESULT_OK) {
        entryPhoto.setimageURI(mCurrentPhotoUri);
    }

我希望你能帮助我。我仍然是初学者,但我真的很想擅长编程。提前致谢。

解决方法

我认为您可以直接在 Uri 包中传递 Intent,因为它扩展了 Parcelable,这意味着它可以按原样检索

添加

data.putExtra("addPhoto",mCurrentPhotoUri);

检索

Uri photoUri = getIntent().getParcelableExtra<Uri>("addPhoto");