2014-11-20 5 views
0

Любая идея, почему этот метод isTopicExist(), размещенный ниже, всегда возвращает true;EditText пуст, и метод всегда возвращает true?

в коде ниже, я проверить это EditText имеет текст или не вызывая он метод isTopicExist, но во время выполнения, я не вводить любой текст и нажмите на кнопку, и я ожидаю увидеть toast в else заявление, но toast никогда не показывает и if (isTopicExist() && (getSelectedRB() != -1)) всегда true.

Мне не хватает чего-то?

код

@Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if (isTopicExist() && (getSelectedRB() != -1)) { 
       Log.d(TAG, "Topic: "+et_topic.getText().toString()); 
       Log.d(TAG, "QoS_Level: "+getSelectedRB()); 
       subscription_topic = et_topic.getText().toString(); 
       subscription_QoS = getSelectedRB(); 
      }else { 
       Toast.makeText(getActivity(), "Topic is a mandatory field", Toast.LENGTH_LONG).show(); 
      } 
     } 
     private boolean isTopicExist() { 
      // TODO Auto-generated method stub 
      if (et_topic.getText().equals("")) 
       return false; 
       return true; 
     } 
    }); 

ответ

3

попробовать это:

private boolean isTopicExist() 
{ 
      // TODO Auto-generated method stub 
      if (et_topic.getText().toString().trim().equalsIgnoreCase("")) 
       return false; 

       return true; 
     } 
    }); 
+0

Из любопытства, есть ли причина игнорировать случай на пустой строке? – AnxGotta

+0

У меня есть вопрос об игнорировании случаев вообще :) – user2121

+0

В моем конкретном случае я использую equalsIgnoreCase() для сравнения строк и сравниваю два объекта, например, два класса. – Ludger

3

Изменить if заявление следующим образом:

if (et_topic.getText().toString().trim().equals("")) 

EditText#getText() возвращает Editable объект, который не будет равен "".

+0

есть ли встроенный в methd, чтобы обнаружить, если поле пусто (нет символов и без номера)? потому что, возможно, пользователь не оставил бы edittext пустым, но он мог бы ввести пробел и в этом случае пространство! 0 = "", и тест будет передан – user2121

+1

Метод 'String # trim()' удалит любые пробелы, Я хочу считать это. Я отредактировал мой ответ, чтобы добавить это, но я хотел бы указать, что @Ludger имел этот ответ, прежде чем я это сделал. –