首页 > 解决方案 > 如何获取一个 Activity 发送的结果?

问题描述

我正在发送结果请求,onActivityresult ()但未在同一活动中接收结果。

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Uri myUri = Uri.parse("");
    if(resultCode==RESULT_OK  && requestCode==PHOTO){
        List<String> mSelected = Matisse.obtainPathResult(data);
        Uri original = Uri.fromFile(new File(mSelected.get(0)));

        UCrop.of(original, myUri)
                .withAspectRatio(16, 9).start(Settings.this);
    }

    if(resultCode==RESULT_OK && requestCode==UCrop.REQUEST_CROP){
        Log.e("Got", "here");
        Uri resultData = UCrop.getOutput(data);
        File file = new File (resultData.getPath ());
        File Compressed=null;
        try {
            Compressed = new ImageZipper(getApplicationContext()).setQuality (75).setMaxWidth (640).setMaxHeight (480).setCompressFormat (Bitmap.CompressFormat.PNG).compressToFile (file);
        } catch (IOException e) {
            Toast.makeText (getApplicationContext(), "Error 407: " + e.getMessage (), Toast.LENGTH_SHORT).show ();
        }
        Uri UploadUri = Uri.fromFile (Compressed);
        EditProfile.ImageUri = UploadUri;
        userProfile.setImageURI(UploadUri);
        EditProfile.isImageUpdated = true;
    }
}`

我在 requestCrop 结果中添加了这个,但它没有显示在 LogCat 中。当我成功完成裁剪时Log.e("Got", "here");

标签: javaandroidexception

解决方案


为 Activity Restult 发送数据

Intent intent = new Intent(context, Activity.class);
startActivityForResult(intent, ACTIVITY_RESULT_CODE);

您将收到有关活动结果的发送数据

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
     if (data != null) {
                switch (requestCode) {
                    case ACTIVITY_RESULT_CODE:
                    // You will get your Sent data here...
                    break;
                }
     }

推荐阅读