Подтвердить что ты не робот

Как вернуться к стилю по умолчанию в EditText, если я применяю фон?

Я просто столкнулся с проблемой, которую я не знаю, как ее решить. Это выглядит глупо, но я не могу найти способ его исправить.

У меня есть форма в android с несколькими EditText, и когда вы отправляете форму, она проверяет эти EditText и, если у них неправильные данные, я меняю EditText на красную рамку (применяя девятикратное изображение).

myEditText.setBackgroundResource(R.drawable.edittext_red);

Проблема в том, что я хочу восстановить стиль по умолчанию в Android, когда пользователь меняет EditText, но я не знаю, как это сделать. если я это сделаю:

myEditText.setBackgroundResource(0);

Он просто удалит все и не то, что я хочу.

Спасибо!

4b9b3361

Ответ 1

Прежде всего, прежде чем вы вызовите setBackgroundResource со своим собственным девятикратным патчем, сохраните исходный фон EditText, например:

Drawable originalDrawable = myEditText.getBackground();

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

myEditText.setBackgroundResource(R.drawable.edittext_red);

И позже, когда вы хотите восстановить внешний вид EditText, используйте сохраненный drawable:

myEditText.setBackgroundDrawable(originalDrawable);

Альтернативно вы можете ссылаться на фоновый экран Android EditText по умолчанию следующим образом:

myEditText.setBackgroundResource(android.R.drawable.edit_text);

В androiddrawables вы можете увидеть, как разные чертежи ищут разные версии Android и получают их идентификатор ресурса. Этот метод должен работать для всех чертежей, а не только для EditText

Эти (и другие ресурсы для Android) также можно найти в вашей собственной системе, в папке android-sdk в

< путь к папке android-sdk > /android-sdk/platform/android- < Уровень API > /data/res/