繁体   English   中英

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

[英]How can I send back the captured image taken from second activity back to the main activity?

这是我来自名为Account class 的主要活动 class 的代码,其中当我按下添加条目按钮时,它将导航到下一个活动,即AddEntry class

    //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);
        }
    });

进入第二个活动AddEntry class 后,当单击名为 entryPhoto 的 ImageView 时,将使用用户的相机拍摄一张照片

    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);
    }

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

    Intent data = new Intent();
                data.putExtra("addPhoto",R.drawable.anonymous);
                data.putExtra("addName", entryName.getText().toString());
                data.putExtra("addRemark", entryRemark.getText().toString());
                data.putExtra("addBirthday", entryBirthday.getText().toString());
                data.putExtra("addAddress", entryAddress.getText().toString());
                data.putExtra("addGender", selectedGender);
                data.putExtra("addContactNo", entryContactNo.getText().toString());
                data.putExtra("addHobbies", entryHobbies.getText().toString());
                data.putExtra("addOtherInfo", entryOtherInfo.getText().toString());
                setResult(RESULT_OK,data);
                finish();

这是主要活动中 onActivityResult 中的代码

    @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data); //ONACTRESULT OF ADD ENTRY
    if (requestCode == REQUEST_CODE_ADD && resultCode == RESULT_OK){
        int addPhoto = data.getIntExtra("addPhoto",1);
        String addName = data.getStringExtra("addName");
        String addRemark = data.getStringExtra("addRemark");
        String addBirthday = data.getStringExtra("addBirthday");
        String addAddress = data.getStringExtra("addAddress");
        String addContactNo = data.getStringExtra("addContactNo");
        String addGender = data.getStringExtra("addGender");
        String addHobbies = data.getStringExtra("addHobbies");
        String addOtherInfo = data.getStringExtra("addOtherInfo");

        entryList.add(0,new Entry(addPhoto,addName,addRemark,addBirthday,addGender,addAddress,addContactNo,addHobbies,addOtherInfo));
        myAdapter.notifyDataSetChanged();
    }

请我希望你能帮助我。 我仍然是初学者,但我真的很想擅长编程。 先感谢您。

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

添加

data.putExtra("addPhoto", mCurrentPhotoUri);

检索

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM