EditText setError () sin mensaje solo el icono
Actualmente tengo un código muy simple que valida los campos EditText
y cuando el usuario pulsa el botón al final, los comprueba. Se pondrán errores en todos los campos con esto:
if (!emailmatcher.matches()) { email.setError("Invalid Email"); } if (!zipmatcher.matches()) { zipcode.setError("Invalid ZipCode"); }
Mi problema es que el teclado se abrirá y moverá la burbuja de error a un lugar aleatorio. Esperaba no tener un error de burbujas con un mensaje, pero mantener los iconos de error en campos EditText
no EditText
. Traté de introducir setError(null)
pero eso no funciona. ¿Algunas ideas?
- Android Edit Text Cursor no aparece
- Cómo EditarTexto Conserva su valor pero no visualiza texto cuando cambia la orientación del teléfono?
- Android EditText: ¿Cómo aplicar la extensión de color de primer plano mientras escribe?
- Identificar el tipo de patrón de regex
- No puedo escribir en el EditText, desaparece cuando intento escribir algo, es porque el getView () se llama cuando modifico los datos
- DrawableRight de EditText
- .length () vs .getText (). Length () vs .getText (). ToString (). Length ()
- Cómo manejar el evento "pegar" en Android 3.0 (Honeycomb)?
- ¿Cómo mostrar errores de entrada en popup?
- Decimal separator comma (',') con numberDecimal inputType en EditText
- Obtener palabra de EditText en la posición actual del cursor
- Establecer multi-línea para el SUGERENCIA de EditText
- Editar texto en ListActivity ListView pierde foco cuando aparece el teclado
Tu código es perfecto para mostrar solo el icono.
Como EditText
se muestra nada relacionado con cuando se ha centrado. Así que cambia tu código para que así …
if (!emailmatcher.matches()) { email.requestFocus(); email.setError("Invalid Email"); } if (!zipmatcher.matches()) { zipcode.requestFocus(); zipcode.setError("Invalid ZipCode"); }
Puedes usar
setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.my_error_icon, 0);
Para configurar el icono de error a la derecha de la entrada de texto. También puede tener que registrarse
View.OnKeyListener
para restablecer el icono de error en la entrada del usuario:
EditText myEdit = (EditText)findViewById(R.id.my_edit); if (TextUtils.isEmpty(myEdit.getText().toString())) { // set the warning myEdit.requestFocus(); // show error icon myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.error_sign, 0); // remove the error icon on key press myEdit.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { EditText eText = (EditText)v; // remove error sign eText.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); // remove this key handler eText.setOnKeyListener(null); return false; } }); }
Esto funciona para mí. Ahora los mensajes de error se abren.
public boolean isValid() { String email = ediTextEmail.getText().toString(); String password = ediTextPassword.getText().toString(); if (TextUtils.isEmpty(email)) { ediTextEmail.requestFocus(); ediTextEmail.setError("Email cannot be blank"); return false; } if (!isEmailValid(email)) { ediTextEmail.requestFocus(); ediTextEmail.setError("Enter a valid email id"); return false; } if (TextUtils.isEmpty(password)) { ediTextPassword.requestFocus(); ediTextPassword.setError("Password cannot be blank"); return false; } mEmail = email; mPassword = password; return true; }
Pop abierto incluso si mi foco está en la password editText
, será redirigido al email editText
.
Simplemente cree su propio edittext y anule setError
public class MyEditText extends EditText { public MyEditText(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setError(CharSequence error, Drawable icon) { setCompoundDrawables(null, null, icon, null); } }
Y luego usar donde quieras et.setError ("", drawableToShow);
Puede utilizar mi solución personalizada para ventanas emergentes. En este caso, el popup es independiente del estado de enfoque de EditText. Además, es utilizable con múltiples EditTexts. https://plus.google.com/+AlexanderZaitsevDev/posts/W9XcZNZrsMB
- ¿Cómo puedo pasar correctamente los extras exclusivos a una intención pendiente?
- Guardar / Crear MMS en la bandeja de entrada de Android