EditText setError () ohne Nachricht nur das Icon

Derzeit habe ich einen wirklich einfachen Code, der EditText Felder validiert und wenn der Benutzer den Button am Ende trifft, prüft er sie. Es wird Fehler in allen Bereichen mit diesem:

 if (!emailmatcher.matches()) { email.setError("Invalid Email"); } if (!zipmatcher.matches()) { zipcode.setError("Invalid ZipCode"); } 

Mein Problem, dass die Tastatur wird Popup und wird die Fehler-Blase zu einem zufälligen Ort zu bewegen. Ich hatte gehofft, keine EditText mit einer Nachricht zu haben, sondern die Fehler-Icons in ungültigen EditText Feldern zu EditText . Ich habe versucht, setError(null) aber das funktioniert nicht. Irgendwelche Ideen?

  • Auf Android eine POST-Anfrage mit URL-codierten Formulardaten ohne Verwendung von UrlEncodedFormEntity
  • Android - Wie man ein halbtransparentes Layout festlegt?
  • Android-Debugger verbirgt lokale Variable
  • ByteBuffer Little Endian Insert funktioniert nicht
  • Geschwindigkeitsregelung von MediaPlayer in Android
  • Wie kann ich telefonisch programmieren?
  • Bestimmen Sie, ob Android App zum ersten Mal verwendet wird
  • Android Splitting mit Platz nicht für diesen Fall zu arbeiten. Warum?
  • EditText mit Einzeltextzeile, Zeilenumbruch und Done-Aktion?
  • Was ist der Unterschied zwischen Action Bar und neu eingeführter Toolbar?
  • Wie kann ich auf mein localhost über Android-Handy zugreifen?
  • Android: Schließen Sie das Dialogfenster auf Berührung
  • 5 Solutions collect form web for “EditText setError () ohne Nachricht nur das Icon”

    Ihr Code perfekt, um nur Symbol zu zeigen.

    Als EditText zeigt alles, was im Zusammenhang mit dem Fokus liegt. Also ändere einfach deinen Code, um das zu mögen …

     if (!emailmatcher.matches()) { email.requestFocus(); email.setError("Invalid Email"); } if (!zipmatcher.matches()) { zipcode.requestFocus(); zipcode.setError("Invalid ZipCode"); } 

    Sie können verwenden

    setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.my_error_icon, 0);

    Um das Fehlersymbol rechts neben der Texteingabe festzulegen. Sie müssen sich auch registrieren müssen

    View.OnKeyListener , um das Fehlersymbol bei Benutzereingaben zurückzusetzen:

     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; } }); } 

    Das funktioniert für mich. Jetzt bekommen Fehlermeldungen Pop-up öffnen.

     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 öffnete auch wenn mein Fokus auf password editText , wird es umgeleitet, um email editText zu email editText .

    Erstellen Sie einfach Ihre eigenen Edittext und überschreiben 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); } } 

    Und dann wo immer du willst et.setError ("", drawableToShow);

    Sie können meine benutzerdefinierte Lösung für Popups verwenden. In diesem Fall ist Popup unabhängig vom EditText-Fokuszustand. Darüber hinaus ist es mit mehreren EditTexts verwendbar. https://plus.google.com/+AlexanderZaitsevDev/posts/W9XcZNZrsMB

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.