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,但我恐怕这不是问题,它仍然给出相同的行为