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

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

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

myEditText.setBackgroundResource(R.drawable.edittext_red);

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

myEditText.setBackgroundResource(0);

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

спасибо!

1 ответов


во-первых, перед вызовом setBackgroundResource с помощью собственного ninepatch сохраните исходный фон EditText, например:

Drawable originalDrawable = myEditText.getBackground();

затем, если пользователь ввел неправильные данные, вы можете установить красную границу ninepatch:

myEditText.setBackgroundResource(R.drawable.edittext_red);

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

myEditText.setBackgroundDrawable(originalDrawable);

как вариант вы можете ссылаться на фон Android EditText по умолчанию напрямую, как это:

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

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

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

/ android-sdk / платформы / android - / данные / res/