Как изменить цвет фона EditText?

#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. это была моя ошибка. Теперь он отредактирован.