如何在片段中使用onActivityResult()

时间:2019-04-02 11:19:07

标签: android

此代码必须返回win.print handlePrint = () => { this.setState({ isPrinting: true }, () => { window.print() //freezes until someone clicks it away. this.setState({ isPrinting: false }) //Error }) } 中的裁剪图像 我正在使用裁剪图像来裁剪图像,然后将其放入imageView中,其在fragment中的工作在片段中不起作用

imageView

mainActivity代码

activity

2 个答案:

答案 0 :(得分:1)

更改

 public void cropImage()
    {
        CropImage.activity()
                .setGuidelines(CropImageView.Guidelines.ON)
                .setMinCropResultSize(512, 512)
                .setAspectRatio(1, 1)
                .getIntent(getContext());
    }

 public void cropImage()
    {
        CropImage.activity()
                .setGuidelines(CropImageView.Guidelines.ON)
                .setMinCropResultSize(512, 512)
                .setAspectRatio(1, 1)
                .start(getContext(), this);
    }

因此结果将传递给片段而不是活动

来自Android Image Cropper存储库

您可以从片段启动CropImageActivity并在片段的onActivityResult方法中接收结果。 使用AppCompat片段是允许您使用直接启动方法的最佳选择:

更新:

在其Git存储库中观看this问题,建议使用另一种选择,

您可以获取意图并手动启动活动:

Intent intent = CropImage.activity(imageUri)
   .getIntent(getContext());
startActivityForResult(intent,CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE);

答案 1 :(得分:0)

在Activity中覆盖onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    FragmentManager supportFragmentManager = getSupportFragmentManager();
    Fragment fragmentById = supportFragmentManager.findFragmentById(R.id.container);
    if (fragmentById != null) {
        fragmentById.onActivityResult(requestCode, resultCode, data);
    }
}