Android 即使未单击“确定”按钮,也会上载图像

Android 即使未单击“确定”按钮,也会上载图像,android,picasso,Android,Picasso,我的博客应用程序应该上传图片和图片下方的描述。我正在使用毕加索裁剪工具裁剪图像 问题:我单击图像按钮上载图像,然后从图库中选择图像,在选择并裁剪图像后,我改变主意,决定不上载图像,只需按后退按钮。图像按钮中也没有显示任何内容。我只需键入描述并发布博客。当博客页面打开时,即使在按下后退按钮而没有将图像上传到图像按钮之后,图像也会被上传到描述中,而我只想显示描述。为什么会这样?我是否需要编写一些特殊的条件代码来避免这种错误? 感谢您的帮助。多谢各位 注意:只有当我调整图像大小并按下后退按钮而不上传图

我的博客应用程序应该上传图片和图片下方的描述。我正在使用毕加索裁剪工具裁剪图像

问题:我单击图像按钮上载图像,然后从图库中选择图像,在选择并裁剪图像后,我改变主意,决定不上载图像,只需按后退按钮。图像按钮中也没有显示任何内容。我只需键入描述并发布博客。当博客页面打开时,即使在按下后退按钮而没有将图像上传到图像按钮之后,图像也会被上传到描述中,而我只想显示描述。为什么会这样?我是否需要编写一些特殊的条件代码来避免这种错误? 感谢您的帮助。多谢各位

注意:只有当我调整图像大小并按下后退按钮而不上传图像时,才会发生这种情况。如果我不进行任何调整,并在选择图像后单击“上一步”按钮,则不会出现问题。

代码:

私人图像按钮选择图像;
selectimage=(ImageButton)findViewById(R.id.imageSelect);
选择image.setOnClickListener(新建视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent gallerycontent=新的意图(Intent.ACTION\u GET\u CONTENT);
GalleryContent.setType(“image/*”);
startActivityForResult(画廊内容、画廊申请);
}
});
公共无效起始位置(){
StorageReference filepath=mstorage.child(“Place_Image”).child(imageUri.getLastPathSegment());
filepath.putFile(imageUri).addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
@SuppressWarnings(“VisibleForTests”)Uri downloadUrl=taskSnapshot.getDownloadUrl();
DatabaseReference newPost=mDatabase.push();
newPost.child(“description”).setValue(desc);
newPost.child(“image”).setValue(downloadUrl.toString());
}});
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==GALLERY\u REQUEST&&resultCode==RESULT\u OK){
imageUri=data.getData();
CropImage.activity(imageUri)
.setGuidelines(CropImageView.Guidelines.ON).setAspectRatio(3,2)
.启动(本);
}
if(requestCode==CropImage.CROP\u IMAGE\u ACTIVITY\u REQUEST\u CODE){
CropImage.ActivityResult结果=CropImage.getActivityResult(数据);
if(resultCode==RESULT\u OK){
Uri resultUri=result.getUri();
imageUri=resultUri;
选择image.setImageURI(resultUri);
}else if(resultCode==CropImage.CROP\u IMAGE\u ACTIVITY\u RESULT\u ERROR\u CODE){
异常错误=result.getError();
}
}
}

根据您的代码和描述,我猜:
选择图像并启动活动对其进行裁剪后,您可以使用requestCode=CropImage.crop\u image\u activity\u REQUEST\u代码调用“startActivtyForResult”。
当您按下后退按钮取消操作时,第一个活动仍然会在函数“onActivityResult”中得到回调,结果代码是“result\u cancel”。
因此,您可以按如下方式修改代码:

if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE && resultCode==RESULT_OK) {
 //your code

}

粘贴您的代码,以便其他人可以帮助您解决此问题。请听取您的建议。我试过你说的方法,但问题仍然存在。
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE && resultCode==RESULT_OK) {
 //your code