#java #android
#java #Android
Вопрос:
Мне нужно изменить цвет фона EditText
, если он пустой. Ниже приведен мой код, но, похоже, он не работает.
public void onClick(View v) {
// TODO Auto-generated method stub
Change();
}
public void Change() {
if(("").equals(name)) {
name.setBackgroundColor(Color.RED);
return;
}
}
Ответ №1:
Самый простой способ — проверить длину:
if (name.length() == 0) {
name.setBackgroundColor(Color.RED);
}
Комментарии:
1. @artist Рад это слышать. Пожалуйста, отметьте принять выбранный вами ответ (контур флажка слева). Спасибо!
Ответ №2:
Предполагая, что ‘name’ — это текст редактирования, о котором идет речь, ваш оператор if должен выглядеть примерно так:
if(("").equals(name.getText().toString()))
Выполнение Object.equals(объекта) между строкой и EditText (по крайней мере, в настоящее время!) не вернет true.
Комментарии:
1. Я хотел указать, где была допущена ошибка. Спасибо!
2. Я должен был упомянуть, что ваше решение определенно работает и лучше показывает, где была ошибка, тогда как я хотел указать лучший способ проверить, является ли EditText пустым. Очевидно, что оба ответа правильные.
Ответ №3:
String name = nameedittext.getText().toString();
if(name.isEmpty()){
nameedittext.setBackgroundColor(Color.RED);
}
Если вы также хотите выдавать сообщение об ошибке, вы можете написать это:
if(name.isEmpty()){
nameedittext.setBackgroundColor(Color.RED);
nameedittext.setError("Please Enter Name");
return;
}
Комментарии:
1. name является экземпляром EditText , поэтому он не содержит метод isEmpty .
2. это была моя ошибка. Теперь он отредактирован.