2017-05-25 54 views
0

我有一个活动,用户可以发送图像或文本或两者。 我不希望用户发送没有图像和文本的东西。它可以有一个图像或只有一个文本,但需要一个。检查EditText是否有超过2个字符的按钮点击只获得第一次点击值

对于文本我检查,如果该领域拥有超过1个字符:

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()); 

,如果用户键入一个字符,并点击发送按钮,它会工作确定,激活该按钮以允许用户添加更多字符并再次尝试。

问题是它不会在第二次尝试时工作,如果用户输入40个字符,例如它也会进入回车。

只有在第一次尝试的用户添加少于2个字符时才会发生。第二个将不允许用户发送。有任何想法吗?

+1

看起来好像您只在没有要上传图片时检查长度,所以如果有图片要上传,它总是会上传。 – MikeT

+0

删除'else'语句。 – Stanojkovic

+0

@MikeT是的,如果它有一个图片,它会上传,没有问题,如果它有一个文本或没有。如果没有图像,它需要至少一个字符只发送文本。 –

回答

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

非常感谢,我会尝试。 –

相关问题