Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:应用程序无法从intent正确返回_Android_Android Intent - Fatal编程技术网

Android:应用程序无法从intent正确返回

Android:应用程序无法从intent正确返回,android,android-intent,Android,Android Intent,我有一个活动,当点击ImageView时,它将打开第二个活动来选择和裁剪图像 这个过程很好。在第二个活动中,当用户对图片感到满意时,他将单击DONE按钮并返回到上一个活动,剪切的图像将显示在单击的ImageView中 问题:从第二个活动返回后,第一个活动不再显示……在我的真实设备中,它会返回到启动Android菜单,如果我尝试检查打开的应用程序,我的应用程序就在那里,但即使我再次单击它,它没有进入第一个活动…似乎它再次重复了选择和裁剪图像的过程…奇怪:S 下面是我用来从一个活动转移到另一个活动的

我有一个活动,当点击
ImageView
时,它将打开第二个活动来选择和裁剪图像

这个过程很好。在第二个活动中,当用户对图片感到满意时,他将单击
DONE
按钮并返回到上一个活动,剪切的图像将显示在单击的ImageView中

问题:从第二个活动返回后,第一个活动不再显示……在我的真实设备中,它会返回到启动Android菜单,如果我尝试检查打开的应用程序,我的应用程序就在那里,但即使我再次单击它,它没有进入第一个活动…似乎它再次重复了选择和裁剪图像的过程…奇怪:S

下面是我用来从一个活动转移到另一个活动的相关代码:

关于我的第一个活动:

public void onImageViewClicked(View v){

        this.clickedImageView = (ImageView) v;
        Intent intent = new Intent(this, CropImages.class);
        switch (v.getId()){
            case R.id.imgvW_1:
                startActivityForResult(intent, 1111);
                break;
            case R.id.imgvW_2:
                startActivityForResult(intent, 2222);
                break;
            case R.id.imgvW_3:
                startActivityForResult(intent, 3333);
                break;
        }

    }
public void onDoneClicked(View v){
        // cropped Bitmap stored in cropped
        Intent returnIntent = getIntent();
        returnIntent.putExtra("Image", cropped);
        setResult(RESULT_OK, returnIntent);
        finish();
    }
结果应该是:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK){    
            if (requestCode == 1111){
                Bitmap b = (Bitmap) data.getParcelableExtra("Image");
                img_encoded_1 = Utilities.encode64Bitmap(b);
                clickedImageView.setImageBitmap(b);


            }

        }
    }
第二个活动(CropImages.java)做了很多事情……但应该这样结束:

public void onImageViewClicked(View v){

        this.clickedImageView = (ImageView) v;
        Intent intent = new Intent(this, CropImages.class);
        switch (v.getId()){
            case R.id.imgvW_1:
                startActivityForResult(intent, 1111);
                break;
            case R.id.imgvW_2:
                startActivityForResult(intent, 2222);
                break;
            case R.id.imgvW_3:
                startActivityForResult(intent, 3333);
                break;
        }

    }
public void onDoneClicked(View v){
        // cropped Bitmap stored in cropped
        Intent returnIntent = getIntent();
        returnIntent.putExtra("Image", cropped);
        setResult(RESULT_OK, returnIntent);
        finish();
    }
有没有线索说明为什么第一个活动消失了,而真正的设备只是显示欢迎/主Android屏幕

如果有帮助的话:第二个活动还启动了一个意图,用于从
画廊
相机
中选择图像……但我认为这并不重要


如果这有帮助的话……第一个活动上的
onActivityResult
似乎从未执行过……该方法上的
TOAST
从未显示过。

这可能是问题所在,请在第一个活动中更改以下内容

Intent intent = new Intent({First Acticity name here}.this, CropImages.class);

更改以下代码

public void onDoneClicked(View v){
    // cropped Bitmap stored in cropped
    Intent returnIntent = getIntent();
    returnIntent.putExtra("Image", cropped);
    setResult(RESULT_OK, returnIntent);
    finish();
}

供参考


谢谢你,伙计,但是这与第一个活动名不一样吗?但是,我试过了,但不起作用…..同样的结果我认为如果你使用
这个
,你需要在清单中指定
父活动名
-你可能点击了调试'app'而不是运行'app'是我的错,忽略上一次编辑…我删除了…好吧,它现在工作了吗?没有…同样的情况,在关闭第二个活动之后…返回到“Android桌面”…你知道我的意思上传完整的代码,包括ManifestThank,但我恐怕这不是问题,它仍然给出相同的行为