2017-05-25 6 views
0

私は、ユーザーが画像やテキスト、あるいはその両方を送信できるアクティビティを持っています。 私はユーザーがイメージとテキストなしで何かを送ることを望んでいません。イメージを持つことも、テキストのみを必要とすることもできますが、テキストを必要とします。フィールドが1つの以上の文字がある場合、私がチェックしたテキストのためにEditTextに2文字以上のボタンがあるかどうかを確認します。クリックすると最初のクリックの値が得られます

uploadImageName = (EditText) findViewById(R.id.etUploadName); 

を... クリック機能

 bUploadImage.setEnabled(false); 

     Bitmap image = null; 
     if(hasImage(imageToUpload)) { 
      image = ((BitmapDrawable) imageToUpload.getDrawable()).getBitmap(); 
     } 
     else{ 
      if(uploadImageName.length() < 2){ // no image and no text 
       bUploadImage.setEnabled(true); 
       return; 
      } 
     } 
     new UploadImage(image, uploadImageName.getText().toString()); 

ユーザータイプ1文字であれば、それが正常に動作します送信ボタンをクリックしてください、ボタンをアクティブにして、ユーザーがさらに文字を追加してやり直すことができるようにします。

問題は、ユーザーが40文字を入力した場合、2回目の試行で問題なく動作します。たとえば、返品にも入力されます。

最初の試行のユーザーが2文字未満を追加した場合にのみ発生します。 2番目のユーザーはユーザーに送信を許可しません。何か案は?

+1

アップロードする画像がない場合は長さのみを確認しているように見えますので、アップロードする画像があればアップロードされます。 – MikeT

+0

'else'ステートメントを削除します。 – Stanojkovic

+0

@MikeTええ、画像があればそれはアップロードされますが、テキストがあれば問題ありません。画像がない場合は、テキストのみを送信するために少なくとも1文字必要です。 –

答えて

1

私があなたのことを正しく理解していれば、データを送信するための条件は、イメージまたは少なくとも1つの文字を含むテキストですか?

bUploadImage.setEnabled(false); 

      Bitmap image = null; 

      if(hasImage(imageToUpload) || (uploadImageName.length() > 0) { 
      if(hasImage(imageToUpload)){ 
       image = ((BitmapDrawable) imageToUpload.getDrawable()).getBitmap(); 
      } 

      bUploadImage.setEnabled(true); 

    } 


      new UploadImage(image, uploadImageName.getText().toString()); 
+0

ありがとう、私はそれを試してみましょう。 –

関連する問題