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?

  • Abfrage, wenn Android-Datenbank existiert!
  • Android Studio war nicht in der Lage, eine gültige Jvm (im Zusammenhang mit MAC OS)
  • Transparentes Layout in Android?
  • Paket com.google.android.maps existiert nicht (IntelliJ)
  • Aktivieren / deaktivieren Sie eine Aktivität programmgesteuert
  • Laden Sie eine Aktivität im Hintergrund, bevor Sie sie anzeigen
  • Ungültige Gradle JDK Konfiguration gefunden?
  • Arten von Animationstechniken in Android?
  • Layout-Dateien Namenskonventionen?
  • Sollten wir anonyme Klassen für OnClickListeners oder innere Klassen verwenden?
  • Wie zu zentrieren Layout auf vertikale in Android durch Java-Code?
  • Native Facebook Login Erfahrung per Browser
  • 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.