私のブログアプリは、画像とその説明を画像の下にアップロードすることになっています。私は画像をトリミングするためにピカソ作物ツールを使用しています。OKボタンがクリックされていなくても画像がアップロードされます
問題:イメージボタンをクリックして画像をアップロードし、ギャラリーを選択して画像を選択してから画像を選択してから画像をアップロードし、画像をアップロードせずに単に戻るボタンを押してください。画像ボタンには何も表示されません。私は単に説明を入力し、ブログを投稿します。ブログのページが開くと、画像ボタンに画像をアップロードせずに戻るボタンを押しても画像がアップロードされて表示されますが、説明のみを表示したかったのです。なぜこうなった?私はそのようなバグを避けるために特別な条件付きコードを書く必要がありますか? 何か助けていただければ幸いです。ありがとうございます
注:画像をサイズ変更し、アップロードせずに戻るボタンを押した場合にのみ発生します。画像を選択した後でサイズ変更をして戻るボタンをクリックしないと、問題が発生しません。
コード:
private ImageButton selectimage;
selectimage= (ImageButton) findViewById(R.id.imageSelect);
selectimage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent galleryIntent=new Intent(Intent.ACTION_GET_CONTENT);
galleryIntent.setType("image/*");
startActivityForResult(galleryIntent,GALLERY_REQUEST);
}
});
public void startposting(){
StorageReference filepath=mstorage.child("Place_Image").child(imageUri.getLastPathSegment());
filepath.putFile(imageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
@SuppressWarnings("VisibleForTests") Uri downloadUrl = taskSnapshot.getDownloadUrl();
DatabaseReference newPost = mDatabase.push();
newPost.child("description").setValue(desc);
newPost.child("image").setValue(downloadUrl.toString());
}});
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,resultCode,data);
if(requestCode==GALLERY_REQUEST && resultCode==RESULT_OK){
imageUri=data.getData();
CropImage.activity(imageUri)
.setGuidelines(CropImageView.Guidelines.ON).setAspectRatio(3,2)
.start(this);
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri resultUri = result.getUri();
imageUri=resultUri;
selectimage.setImageURI(resultUri);
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
}
をあなたのコードは非常に他のペースト –