2016-07-13 5 views
-2

У меня есть EditText и Button.Как проверить, имеет ли значение EditText значение?

Я хочу, чтобы EditText был пуст при нажатии на мой Button. Я хочу показать сообщение как тост, например «введите число».

+1

Можем ли мы увидеть пример кода? – christopher

+2

Дублированный вопрос: http://stackoverflow.com/questions/6290531/check-if-edittext-is-empty – Nico

ответ

1

Используйте это на щелчком кнопки:

EditText editText = (EditText) view.findViewById(EditTextID); 
    if(editText.getText().toString().length()==0) { 
    Toast alert = Toast.makeText(context, toast_message, Toast.LENGTH_SHORT); 
    alert.show(); 
    } 
0

В onClickListener() кнопки:

int length = editText.getText().length(); 
if(length == 0) 
{ 
    Toast.makeText(getActivity(), "Please enter a number",Toast.LENGTH_LONG).show(); 
} 
+0

очень спасибо за вашу помощь. –

+0

Без проблем! Примите, пожалуйста, ответ, если вы считаете его правильным/полезным. –

2

Вы можете сделать что-то вроде этого:

boolean hasValue = editText.getText().length() > 0; 

или

boolean hasValue = !editText.getText().toString().isEmpty(); 

или убедиться, что он не содержит только пробелы:

boolean hasValue = !editText.getText().toString().trim().isEmpty(); 
1

Чистейшая способ сделать это TextUtils.isEmpty(editText.getText()) Поэтому я говорю, что это самый чистый путь, потому что:

  • Вы избегаете бессмысленного преобразования между CharSequence и String. Что создает объект. editText.getText() возвращает Editable, вызывающий toString() создает дополнительный объект, который не является хорошим. Этот метод также никогда не вернет null в моем опыте.
  • Вы получаете null и length. Если вы посмотрите на код для TextUtils.isEmpty(), он в основном проверяет, является ли CharSequencenull, а длина равна нулю.
  • Он избегает дублирования кода, и тот же метод может использоваться с String или CharSequence объектами и Editable - это реализация CharSequence.
  • Он предоставляется как часть платформы Android.

Если вы хотите проверить длину обрезанной строки. Затем используйте:

TextUtils.isEmpty(editText.getText()) 
      && TextUtils.getTrimmedLength(editText.getText()) == 0 

Если вы хотите, вы можете создать свой собственный служебный метод, чтобы сделать это, так что вы не должны добавить такое длинное условие в вашем коде многократно.

Я бы приложил OnFocusChangeListener к вашему EditText, чтобы проверить изменение стоимости или TextWatcher или оба в зависимости от того, насколько важно ваше требование. Если ваше поле было сосредоточено и потеряло его, выполните свою проверку с помощью OnFocusChangeListener, если ваше поле имеет фокус, и пользователь печатает и удаляет контент, или содержимое слишком короткое, используйте TextWatcher, чтобы сообщить им об этом.

0

вы, вероятно, уже нашли ответ на свой вопрос, но для тех, кто пришел сюда в надежде найти ответ вот как его сделать:

вы должны создать объект типа String или объект Int первым, то в вашей функции кнопки Click написать это:

@Override 
    public void onClick(View view) { 
    String numberValue; 
        numberValue = yourEditText.getText().toString(); 
        if (emailEtValue.matches("")){ 
         Snackbar sbEmptyValue = Snackbar.make(view, "You must enter an Integer Value", Snackbar.LENGTH_LONG); 
         sbEmptyValue.show(); 
        } else { 
         //DO THE THING YOU WANT 
        } 
} 

вы также можете использовать Toast, но я предпочитаю закусочной потому, что его холоднее, чем Toast.

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