Как вернуться к стилю по умолчанию в 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/