2015-10-28 3 views
1

У меня есть EditText named countOfProduct (Number editText тип, когда пользователь хочет вставить в это, просто номера экрана keyborad) и if, в котором я хочу видеть этот конец пользователь вставляет номер или нет. Я googled и нашел много решений, но никто из них не работал для меня.findout, если numeric editText заполнен или нет

Вот мой, если:

if(!countOfProduct.getText().toString().equals("") || 
    !countOfProduct.getText().toString().matches("")|| 
    !countOfProduct.getText().toString().matches(null) || 
    !countOfProduct.getText().toString().equals(null) || 
    !countOfProduct.getText().toString().isEmpty() || 
    !countOfProduct.getText().equals(null) || 
    (countOfProduct.getText().length() ==0) || 
    (countOfProduct.getText().toString().length() ==0)) 

что я должен делать?

+0

Я думаю, что вы должен использовать 'TextWatcher' для' EditText' .. !! – AndiGeeky

+0

Вы хотите проверить, пуст ли editText или проверить, что пользователь печатает, когда он набирает? –

+0

@MirianaItani Я хочу проверить, пуст он или нет. Не имеет значения, что он вставляет. –

ответ

0

Try с:

String myString = countOfProduct.getText().toString(); 
if (!TextUtils.isEmpty(myString)) { 
    if (tryParseInt(myString)) 
     Log.d("IS A NUMBER", ""); 

} 


boolean tryParseInt(String value) { 
try { 
    Integer.parseInt(value); 
    return true; 
    } catch (NumberFormatException e) { 
    return false; 
    } 
} 
+0

я просто использовал: если (TextUtils.isEmpty (countOfProduct.getText()) и works.Thx ALOT –

+0

Ваш код, поскольку он не может скомпилировать, потому что 'EditText.getText()' возвращает 'редактируемые!. 'object, а не строка: http://developer.android.com/reference/android/widget/EditText.html # getText() – AdamMc331

+0

@ McAdam331 да, извините, я допустил ошибку. Теперь он должен работать. – helloimyourmind

0

Всегда помните: EditText.getText() никогда не вернется null.

Это само по себе достаточно, если вы не заботитесь о пространствах:

if(countOfProduct.getText().length() != 0){ 
    // This means that the EditText is not empty 
} 

Если вы заботитесь о пространствах, а затем использовать это:

if(countOfProduct.getText().toString().trim().length() != 0){ 
    // This means that the EditText is not empty. 
} 
+0

не работает. , как вы видите его номер типа editText. –

+0

Неважно, какой тип 'EditText' он есть. До тех пор, пока это «EditText», это должно работать. Если я не ошибаюсь, вы просто хотите проверить, пуст ли 'EditText' или нет, не так ли? – Henry

0

Если вы хотите, чтобы пользователь вставить только номер в первую очередь вы должны объявить его в макет XML с андроида: inputType атрибут:

<EditText 
    android:id="@+id/count_of_product" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:inputType="number" > 

затем добавить TextWatcher к вашему EditText:

countOfProduct.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 
       //insert your checks here 
      } 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      } 
      @Override 
      public void afterTextChanged(Editable s) { 
      }; 
     }); 

проверки this page, чтобы знать, как использовать TextWatcher

2

Я предпочитаю использовать String.isEmpty() для проверки:

if(myEditText.getText().toString().isEmpty()) { 
    // Bad input 
} 

Он имеет всегда работал хорошо для меня.

EDIT

Примечание, TextUtils.isEmpty() может занять Editable объект (так как этот класс реализует CharSequence), так что если вы предпочитаете вы можете использовать этот метод, чтобы избежать вызова .toString():

if(TextUtils.isEmpty(myEditText.getText())) { 
    // Bad input 
} 
+0

Вы правы, я должен использовать класс TextUtils. Но isEmpty для вызова .toString не работает для меня. –

+0

@ The.Only.One Это не так? Вы получили сообщение об ошибке? – AdamMc331

+0

Здесь (В этом случае я проверяю editText), я вызываю SP и значение, переданное этому SP. Если значение содержит null, программа, к сожалению, остановлена! , но, как я сделал проверку с использованием класса TextUtil, все было в порядке и получилось Toas.makeText(). Показать, что он должен вставить какой-то номер. –

Смежные вопросы