2017-05-25 43 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

非常感謝,我會嘗試。 –