У меня есть EditText
и Button
.Как проверить, имеет ли значение EditText значение?
Я хочу, чтобы EditText
был пуст при нажатии на мой Button
. Я хочу показать сообщение как тост, например «введите число».
У меня есть EditText
и Button
.Как проверить, имеет ли значение EditText значение?
Я хочу, чтобы EditText
был пуст при нажатии на мой Button
. Я хочу показать сообщение как тост, например «введите число».
Используйте это на щелчком кнопки:
EditText editText = (EditText) view.findViewById(EditTextID);
if(editText.getText().toString().length()==0) {
Toast alert = Toast.makeText(context, toast_message, Toast.LENGTH_SHORT);
alert.show();
}
В onClickListener() кнопки:
int length = editText.getText().length();
if(length == 0)
{
Toast.makeText(getActivity(), "Please enter a number",Toast.LENGTH_LONG).show();
}
очень спасибо за вашу помощь. –
Без проблем! Примите, пожалуйста, ответ, если вы считаете его правильным/полезным. –
Вы можете сделать что-то вроде этого:
boolean hasValue = editText.getText().length() > 0;
или
boolean hasValue = !editText.getText().toString().isEmpty();
или убедиться, что он не содержит только пробелы:
boolean hasValue = !editText.getText().toString().trim().isEmpty();
Чистейшая способ сделать это TextUtils.isEmpty(editText.getText())
Поэтому я говорю, что это самый чистый путь, потому что:
CharSequence
и String
. Что создает объект. editText.getText()
возвращает Editable
, вызывающий toString()
создает дополнительный объект, который не является хорошим. Этот метод также никогда не вернет null в моем опыте.null
и length
. Если вы посмотрите на код для TextUtils.isEmpty()
, он в основном проверяет, является ли CharSequence
null
, а длина равна нулю.String
или CharSequence
объектами и Editable
- это реализация CharSequence
.Если вы хотите проверить длину обрезанной строки. Затем используйте:
TextUtils.isEmpty(editText.getText())
&& TextUtils.getTrimmedLength(editText.getText()) == 0
Если вы хотите, вы можете создать свой собственный служебный метод, чтобы сделать это, так что вы не должны добавить такое длинное условие в вашем коде многократно.
Я бы приложил OnFocusChangeListener
к вашему EditText
, чтобы проверить изменение стоимости или TextWatcher
или оба в зависимости от того, насколько важно ваше требование. Если ваше поле было сосредоточено и потеряло его, выполните свою проверку с помощью OnFocusChangeListener
, если ваше поле имеет фокус, и пользователь печатает и удаляет контент, или содержимое слишком короткое, используйте TextWatcher
, чтобы сообщить им об этом.
вы, вероятно, уже нашли ответ на свой вопрос, но для тех, кто пришел сюда в надежде найти ответ вот как его сделать:
вы должны создать объект типа 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.
Можем ли мы увидеть пример кода? – christopher
Дублированный вопрос: http://stackoverflow.com/questions/6290531/check-if-edittext-is-empty – Nico